Synchronizing streams of co-watching digital video content while providing live digital video chat streams across multiple client devices

ABSTRACT

This disclosure describes a video co-watching system that can efficiently, flexibly, and securely provide access to, and synchronize, co-watching digital video content across multiple participant devices while providing live digital video chat streams between the participant devices. For example, the video co-watching system can enable the participant devices to simultaneously present co-watching digital video content together with a presentation of a video chat. In addition, the video co-watching system can synchronize the co-watching digital video content at each participant device while also facilitating video chatting between the participant devices by transmitting a playback modifier signal to cause one participant device to perform a modification to the playback made at another participant device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/556,633, filed on Dec. 20, 2021, which is a continuation of U.S.patent application Ser. No. 16/987,046, filed on Aug. 6, 2020, now U.S.Pat. No. 11,206,443, which claims the benefit of and priority toprovisional application No. 63/022,288 filed on May 8, 2020. Each of theaforementioned applications are hereby incorporated by reference intheir entirety.

BACKGROUND

Advancements in software and hardware platforms have led to a variety ofimprovements in systems that connect and transfer digital contentbetween client devices across computer networks. For example, digitalcommunication systems are now able to implement video chats betweenclient devices to facilitate real-time, digital communication betweendigital conference participants. Indeed, some digital communicationsystems can connect groups of more than two client devices to initiate acommon video conference between the client devices utilizing variouscomputer networking technologies.

Despite these advances however, conventional digital communicationsystems continue to suffer from a number of disadvantages, particularlyin their efficiency, flexibility, and data security. For example, someconventional systems inefficiently utilize computing resources such asprocessing power, processing time, and memory in processing excessivenumbers of user interactions to share digital content with other devicesin a group video chat. Particularly, conventional systems require usersto navigate through many layers of user interfaces (sometimes acrossmultiple applications) to access desired data and/or functionality to,for example, locate a digital image to upload or share to other devicesin a group video chat. To share digital content such as a digital image,these systems often require a separate application (apart from a videoco-watching application) such as a messaging application to share thedigital content when such functionality is not available as part of thegroup video chat directly.

In addition to being inefficient, some conventional digitalcommunication systems are also inflexible. For example, to access shareddigital content within a common video chat, conventional systems oftenrequire devices to download the digital content and to present thedigital content outside of the common video chat. Due to the siloednature of presenting shared digital content and providing a group videochat in these conventional systems, such systems are often limited toasynchronous digital content sharing. As another example, manyconventional digital communication systems provide limited contentcontrols within a group video chat.

Beyond inefficiency and inflexibility, conventional digitalcommunication systems are also insecure. To elaborate, conventionalsystems often track and obtain large amounts of device data based onaccessing digital content (such as digital videos). For example,conventional systems gather information to determine user preferences,track user-specific viewing histories, and generate recommendations ofsuggested videos. Despite the sophistication of many of theseconventional systems, accessing and storing large amounts of personaldevice and/or user information undermines data privacy and exposesprivate information to security attacks by malicious actors. Thus,because many conventional digital communication systems monitor andtrack detailed information pertaining to digital content shared betweenclient devices, these systems are more susceptible to security breachesthat expose sensitive information.

Thus, there are disadvantages with regard to conventional digitalcommunication systems.

SUMMARY

One or more embodiments described herein provide benefits and solve oneor more of the foregoing or other problems in the art with systems,methods, and non-transitory computer readable media that canefficiently, flexibly, and securely provide access to, and synchronize,co-watching digital video content across multiple participant deviceswhile providing live digital video chat streams between the participantdevices. In particular, the disclosed systems can simultaneously presentco-watching digital video content together with a presentation of avideo chat for watching and reacting to the co-watching digital videocontent together in real time. In addition, the disclosed systems cansynchronize the co-watching digital video content at each participantdevice while also facilitating video chatting between the participantdevices. In particular, the disclosed systems can provide access toindependent streams of co-watching digital video content and cansynchronize playback of the independent streams by transmitting aplayback modifier signal to cause participant devices to modify playbacksynchronized to the modifications of another participant device.

Moreover, by utilizing a playback modifier signal, the disclosed systemscan also improve security in synchronizing co-watching digital contentacross participant devices (e.g., without identifying, tracking,storing, or exposing information regarding the digital content). Toillustrate, the disclosed systems can provide a user interface at eachparticipant device that includes a digital media player. The digitalmedia player can access and display digital video content fromthird-party content providers. Without identifying, monitoring, ortracking this digital video content, the disclosed systems can stillsynchronize the digital video content playback across the participantdevices. For example, the disclosed systems can identify an encryptedco-watching digital video content identifier and distribute theencrypted identifier to media players at each participant device.Moreover, the disclosed systems can pass playback modifier signals tothe individual participant devices to synchronize the co-watchingdigital video content without accessing the co-watching digital videocontent itself In this manner, the disclosed systems can synchronizedigital video content during a digital video chat while improvingdigital security and privacy.

Additional features and advantages of the present application will beset forth in the description which follows, and in part will be obviousfrom the description, or may be learned by the practice of such exampleembodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description refers to the drawings briefly described below.

FIG. 1 illustrates a block diagram of an environment for implementing avideo co-watching system in accordance with one or more embodiments.

FIG. 2 illustrates an example participant device displaying asynchronized digital content video chat interface in accordance with oneor more embodiments.

FIG. 3 illustrates a sequence of acts for initiating a co-watchingsession with a video chat and synchronizing playback of co-watchingdigital video content in accordance with one or more embodiments.

FIG. 4 illustrates a diagram of receiving and providing a co-watchingdigital video content identifier in accordance with one or moreembodiments.

FIG. 5 illustrates a diagram of nesting a playback modifier signalwithin live video stream data in accordance with one or moreembodiments.

FIGS. 6A-6C illustrate an example series of user interfaces forinitiating a co-watching session in accordance with one or moreembodiments.

FIGS. 7A-7C illustrate another example series of user interfaces forinitiating a co-watching session in accordance with one or moreembodiments.

FIGS. 8A-8B illustrate example user interfaces depicting adjustments involume settings in accordance with one or more embodiments.

FIG. 9 illustrates a participant device engaged in a co-watching sessionwith more than two participant devices in accordance with one or moreembodiments.

FIG. 10 illustrates a participant device engaged in a co-watchingsession together with a messaging session in accordance with one or moreembodiments.

FIG. 11 illustrates an example schematic diagram of a computing deviceincluding various components of a video co-watching system in accordancewith one or more embodiments.

FIG. 12 illustrates an example flow of acts for providing andsynchronizing co-watching digital video content to participant devicesfor simultaneous presentation with a consolidated live video stream inaccordance with one or more embodiments.

FIG. 13 illustrates a block diagram of an example computing device inaccordance with one or more embodiments.

FIG. 14 illustrates an example network environment of a networkingsystem in accordance with one or more embodiments.

FIG. 15 illustrates a social graph in accordance with one or moreembodiments.

DETAILED DESCRIPTION

One or more embodiments described herein provide benefits and solve oneor more of the foregoing or other problems in the art with a videoco-watching system that can efficiently, accurately, and securelysynchronize co-watching digital content session between multipleparticipant devices while providing live digital video chat streamsacross the participant devices. As part of synchronizing co-watchingdigital content across multiple participant devices, the disclosedsystems can provide a synchronized digital content video chat interface.In particular, the synchronized digital content video chat interface caninclude both a consolidated live video stream (that includes videostreams from the participant devices in a video chat) as well as adigital media player that presents co-watching digital video content.While providing live video streams for video chatting betweenparticipant devices (and while the participant devices are playing theco-watching digital video content), the video co-watching system canfurther identify an indication of a modification to playback of theco-watching digital video content made at one of the participantdevices. Based on the indication of the modification to the playback,the video co-watching system can synchronize the playback across otherparticipant devices in the video chat by transmitting a media playerplayback modifier signal that causes the media player of the otherparticipant devices to perform the modification.

As mentioned, the video co-watching system can provide a synchronizeddigital content video chat interface that includes different portions orregions for displaying different content (e.g., for displaying contentfrom different sources). More specifically, the synchronized digitalcontent video chat interface can include a consolidated live videostream that presents live video streams captured by participant devicesfor participating together in a live video chat. In addition, thesynchronized digital content video chat interface can include a digitalmedia player that presents a stream of co-watching digital videocontent. For example, a digital media player at a first participantdevice can present a first stream of the co-watching digital videocontent and a digital media player at a second participant device canpresent a second stream of the co-watching digital video content. Insome embodiments, the video co-watching system provides the digitalmedia player as part of the synchronized digital content video chatinterface for access to content associated with the video co-watchingsystem. In other embodiments, the video co-watching system integrates adigital media player from a third-party digital content provider systeminto the synchronized digital content video chat interface for access tocontent associated with the third-party digital content provider system.

Based on receiving an indication to begin co-watching digital videocontent (e.g., via user interaction selecting co-watching digital videocontent during a video chat), the video co-watching system can provideaccess to the co-watching digital video content. More specifically, thevideo co-watching system can cause the participant devices in the videochat to present the selected co-watching digital video content, whereeach participant device plays its own stream independently of the otherparticipant devices. In some embodiments, the video co-watching systemprovides the co-watching digital video content to the participantdevices for playback. In other embodiments, the video co-watching systemdoes not host the co-watching digital video content but insteadfacilitates access to the co-watching digital video content by theparticipant devices and causes the participant devices to play theco-watching digital video content. Further, the video co-watching systemcan cause each participant device to stream the co-watching digitalvideo content independently without monitoring or controlling thestreams from a central location.

As mentioned above, the video co-watching system can improve privacy andsecurity of device data (and/or user data) by refraining fromidentifying selected co-watching digital video content and refrainingfrom associating the co-watching digital video content with anyparticipant devices and/or users. By avoiding identification orcollection of information about co-watching digital video content, thevideo co-watching system can nevertheless provide access to, and causeparticipant devices to play, co-watching digital video content whilealso providing live video streams for a video chat.

For example, in some embodiments, based on user interaction selectingco-watching digital video content for co-watching across the participantdevices, the video co-watching system receives an encrypted co-watchingdigital video content identifier from a third-party digital contentprovider system that hosts the co-watching digital video content. Inaddition, the video co-watching system can provide the encryptedco-watching digital video content identifier to other participantdevices to cause the digital media players at those devices to accessand play the corresponding co-watching digital video content. Thus, thevideo co-watching system can cause participant devices to presentco-watching digital video content without accessing or identifying theco-watching digital video content itself

As mentioned above, the video co-watching system can synchronizeplayback of the co-watching digital video content based on an indicationof a modification to the playback. In particular, the video co-watchingsystem can receive an indication from a participant device thatindicates user selection to play, pause, fast forward, rewind, or skipwithin the co-watching digital video content. Based on the indication ofthe modification at one participant device, the video co-watching systemcan cause the other participant devices to perform the samemodification. More specifically, the video co-watching system canprovide a media player playback modifier signal to the other participantdevices to cause the media player at the other participant devices toperform the modification without ascertaining information about theco-watching digital video content itself In some embodiments, the videoco-watching system nests the media player playback modifier signalwithin live video stream data associated with the live video stream.Apart from the indication of the modification, the video co-watchingsystem refrains from monitoring or controlling playback of theco-watching digital video content at the participant devices and relieson the participant devices to play the co-watching digital video contentat the same speed.

The video co-watching system can also provide audio controls for theco-watching digital video content that are independent of audio controlsfor the consolidated live video stream. In particular, the videoco-watching system can provide a first audio control option formodifying a volume setting of the consolidated live video stream whilemaintaining a volume setting of the digital media player. In addition,the video co-watching system can provide a second audio control optionfor modifying a volume setting of the digital media player whilemaintaining the volume setting of the consolidated live video stream. Insome embodiments, the video co-watching system can automatically modify(or cause a participant device to modify) a volume setting for theco-watching digital video content without modifying a volume setting fora consolidated live video stream of a video chat (or vice-versa). Forexample, the video co-watching system can determine changes to an audioamplitude of the co-watching digital video content during playback andcan automatically (e.g., without user input) adjust a volume setting ofthe consolidated live video stream such to have a different level thanthat of the co-watching digital video content (e.g., so that either theco-watching digital video content or the live video streams are easierto hear).

As suggested above, the video co-watching system can provide severaladvantages over conventional digital communication systems. Inparticular, the video co-watching system can improve efficiency overconventional systems by reducing the number of user interactionsrequired to access desired data and/or functionality for sharing digitalcontent within a group video chat.

For example, the video co-watching system can provide simultaneousdisplay of a consolidated live video stream for a video chat and aco-watching digital video content selection menu for selectingco-watching digital video content for playback across all devices in thevideo chat. Thus, unlike conventional systems that require navigationthrough different layers, interfaces, and applications to share digitalcontent, the video co-watching system can integrate, together with theconsolidated live video stream, the selecting and viewing of co-watchingdigital video content directly within a single synchronized digitalcontent video chat interface.

From the perspective of additional participant devices (other than aparticipant device that initiates the co-watching), the videoco-watching system can require fewer (e.g., zero) user interactions toprovide the co-watching digital video content for display. Indeed, thevideo co-watching system can automatically initiate co-watching acrossdevices by causing other participant devices within a common video chatto present the co-watching digital video content within a synchronizeddigital content video chat interface based on an indication to beginco-watching. By contrast, many conventional systems require express userinteractions to select, download, and open any shared digital content,often using an application separate from a video chat application toview the digital content. Thus, the video co-watching system can utilizecomputing resources such as processing time, processing power, andmemory more efficiently than conventional systems that, by comparison,process larger numbers of user interactions to access desired videocontent sharing data and/or video content sharing functionality.

As another example of improved efficiency, the video co-watching systemcan reduce usage of computing resources for analyzing and storingdigital content. In particular, some conventional systems store andmanage digital content data to, for example, host streams of digitalvideo provided to client devices. Such storage and broadcasting ofdigital content is computationally expensive, especially when thelibrary of digital content and the number of client devices accessingthe digital content becomes large. To reduce the computation cost ofconventional systems, the video co-watching system can accessco-watching digital video content from a third-party digital contentprovider system without directly storing or providing the videoco-watching content itself (or even any metadata or other informationabout the video co-watching content).

As yet another example of improved efficiency, the video co-watchingsystem can reduce the computation cost for synchronizing streams ofvideo content. While many conventional systems require separate streamsfor playing video content and for providing a video chat, the videoco-watching system can require fewer computing resources for handlingmedia player playback modifier signals. For instance, in someembodiments, the video co-watching system nests a media player playbackmodifier signals within existing data streams. In other embodiments, thevideo co-watching system generates a separate data channel for includingmedia player playback modifier signals as part of a video chat service.However, to synchronize playback of the co-watching digital videocontent, the video co-watching system need not provide a new data streambut can instead nest, or provide in tandem, a media player playbackmodifier signal together with live video stream data associated with aconsolidated live video stream of an ongoing video chat. Thus, in someembodiments the video co-watching system can avoid adding additionalcommunication channels beyond the channels required for facilitating thevideo chat while still facilitating playback of, and synchronizing,co-watching digital video content.

In addition to improving efficiency, the video co-watching system canalso improve flexibility over conventional digital communicationsystems. As opposed to conventional systems that limit control of shareddigital content to a single host device, the video co-watching systemcan flexibly enable multiple participant devices to control playback ofco-watching digital video content. To elaborate, the video co-watchingsystem can provide playback control options for manipulating co-watchingdigital video content to pause, play, fast forward, rewind, and skip theco-watching digital video content to all participant devices viewing theco-watching digital video content and participating in a common videochat. The video co-watching system can further synchronize the videoco-watching content based on control operations received from any of theparticipant devices (and not just a host or initiator device). Thus, thevideo co-watching system enables greater flexibility for presenting andmanipulating co-watching digital video content across multiple clientdevices participating in a video chat.

As still another improvement to flexibility, the video co-watchingsystem can provide more flexible audio controls than conventionalsystems. For example, as opposed to a conventional system that providesonly a single, universal audio control for adjusting volume across allchannels of client device feeds, the video co-watching system canprovide channel-specific audio controls to each participant device in avideo chat. Thus, the video co-watching system can enable participantdevices to adjust a volume setting for playback of co-watching digitalvideo content independently of a volume setting for live video streamsof the video chat.

Beyond improving efficiency and flexibility, the video co-watchingsystem can further improve data security over conventional systems. Inparticular, in contrast to conventional systems that host video contentdirectly and determine content-related information about users such asviewing habits, the video co-watching system can facilitatesimultaneous, synchronized co-watching of video co-watching contentacross multiple client devices engaged in a video chat withoutextracting, determining, or monitoring sensitive content-specificinformation about the participant devices and/or the corresponding useraccounts. For example, the video co-watching system can transmit a mediaplayer playback modifier signal to cause a participant device to performa playback modification without identifying or determining anyinformation about the co-watching digital video content itself.Relatedly, the video co-watching system can receive and transmit anencrypted co-watching digital video content identifier to obfuscate theco-watching digital video content such that the video co-watching systemnever identifies any specific information about the video co-watchingcontent but can still cause participant devices to access and play theco-watching digital video content. The video co-watching system therebymaintains increased anonymity and privacy for participant devices anduser accounts and prevents unnecessary transfer and storing ofpotentially sensitive information, which, further reduces the risk ofmalicious parties gaining access to such information.

As indicated by the foregoing discussion, the present disclosureutilizes a variety of terms to describe features and advantages of thevideo co-watching system. For example, as used herein, the term“co-watching digital video content” refers to digital video content thatis streamed or provided to multiple participant devices for playback. Inparticular, co-watching digital video content can include digital videocontent streamed at multiple participant devices such that theparticipant devices can display the video content together (i.e., to“co-watch” the video content) in real time (or near real time). Asexplained in greater detail below, the video co-watching system canpresent co-watching digital video during simultaneous presentation oflive video streams of a video chat at the participant devices.Co-watching digital video content can include digital video content fromthe video co-watching system or from a third-party digital contentprovider system.

As mentioned, the video co-watching system can provide a synchronizeddigital content video chat interface to participant devices. As usedherein, the term “synchronized digital content video chat interface”refers to a graphical user interface presented via a participant deviceand that includes a consolidated live video stream as well as a digitalmedia player. For example, the synchronized digital content video chatinterface includes separate portions or regions for the consolidatedlive video streams and the digital media player so that participants cancommunicate via a video chat while simultaneously watching theco-watching digital video content.

Relatedly, the term “consolidated live video stream” refers to apresentation or a display of two or more live video streams together ina single interface, where the live video streams are captured byseparate participant devices engaged in a video chat. Particularly, aconsolidated live video stream can include a presentation of a firstlive video stream captured by a first participant device and a secondlive video stream captured by a second participant device. In addition,the term “digital media player” refers to one or more user interfaceelements that enable a participant device to access, display, andmanipulate playback of co-watching digital video content. The digitalmedia player can include a set of software instructions that accompanythe user interface elements to cause a participant device to performparticular functions to access, display, and manipulate playback ofco-watching digital video content. Further, the digital media playerpresents separate streams of co-watching digital video content on eachparticipant device, where the playback of each stream on the individualparticipant devices is independent of the playback of the other streams(i.e., the playback of the streams is not universally controlled at acentral server).

As mentioned above, video co-watching system can synchronize playbackacross participant devices by transmitting a media player playbackmodifier signal. As used herein, the term “media player playbackmodifier signal” (or simply “playback modifier signal”) refers to adigital command or a digital signal that causes the digital media playerat a participant device to perform a particular function (or set offunctions) to manipulate playback of co-watching digital video content.In particular, a media player playback modifier signal can include oneor more computer instructions to cause the digital media player toperform or implement a particular modification in relation to anindividual stream of co-watching digital video content at a participantdevice. Relatedly, the term “playback modification” (or simply“modification”) refers to a change or alteration to the playback of astream of co-watching digital video content. Based on identifying amodification at one participant device, the video co-watching system cantransmit a media player playback modifier signal to cause the otherparticipant devices in the video chat to perform the same modification.

As further mentioned above, the video co-watching system can causeparticipant devices to begin presenting co-watching digital videocontent by providing a co-watching digital content identifier to theparticipant devices. As used herein, the term “co-watching digitalcontent identifier” refers to a digital identifier that indicates aparticular item of co-watching digital video content. For example, aco-watching digital content identifier can include a digital indicatorthat causes participant devices to access and present the item ofco-watching digital video content, but that does not reveal the identityof (or any other information pertaining to) the co-watching digitalvideo content selected for playback. Indeed, in some embodiments, thevideo co-watching system receives an encrypted co-watching digitalcontent identifier which obfuscates the identity of the particular itemof co-watching digital video content selected for playback at theparticipant devices. By utilizing co-watching digital contentidentifiers, the video co-watching system can avoid determining theidentify of, or other information about, the co-watching digital videocontent.

Additional detail regarding the video co-watching system will now beprovided with reference to the figures. For example, FIG. 1 illustratesa schematic diagram of an example environment for implementing a videoco-watching system 102 in accordance with one or more embodiments. Anoverview of the video co-watching system 102 is described in relation toFIG. 1 . Thereafter, a more detailed description of the components andprocesses of the video co-watching system 102 is provided in relation tothe subsequent figures.

As shown in FIG. 1 , the environment includes server(s) 106, a firstparticipant device 108 a, a second participant device 108 b, athird-party digital content provider system 112, and a network 116. Eachof the components of the environment can communicate via the network116, and the network 116 may be any suitable network over whichcomputing devices can communicate. Example networks are discussed inmore detail below in relation to FIGS. 13 and 14 .

As mentioned, the environment includes a first participant device 108 aand a second participant device 108 b. The participant devices 108 a and108 b can be one of a variety of computing devices, including asmartphone, a tablet, a smart television, a desktop computer, a laptopcomputer, a virtual reality device, an augmented reality device, or someother computing device as described in relation to FIGS. 13 and 14 . Theparticipant devices 108 a-108 b can receive user input in the form ofuser actions such as touch gestures or clicks in relation to userinterface elements displayed as part of the video co-watchingapplication 110. In some embodiments, the participant devices 108 a-108b are associated with respective users of the social networking system104, where the users have social media accounts or user accountsregistered with the social networking system 104. Although individualdevices corresponding to individual accounts are shown in FIG. 1 , eachuser account can be associated with multiple devices (e.g., a singleuser can access the social networking system 104 and the videoco-watching system 102 utilizing a tablet device, a mobile phone, and/ora personal computer). The participant devices 108 a-108 b can alsoprovide information pertaining to user input to the server(s) 106. Thus,the video co-watching system 102 on the server(s) 106 can receive userinput information from the participant devices 108 a-108 b to indicateactions within the video co-watching application 110 for initiating avideo chat, participating in a video chat, providing electroniccommunications between the participant devices 108 a-108 b, initiatingplayback of co-watching digital video content, and modifying playback ofthe co-watching digital video content.

In some embodiments, the first participant device 108 a indicates a userselection of co-watching digital video content to share or to co-watchwith the second participant device 108 b. In turn, the secondparticipant device 108 b accesses and presents its own stream of theco-watching digital video content while the first participant device 108a also presents a stream of the co-watching digital video content. Thevideo co-watching system 102 also receives or identifies an indicationof a playback modification from the first participant device 108 a. Inresponse, the video co-watching system 102 synchronizes the playback ofthe co-watching digital video content at the first participant device108 a and the second participant device 108 b by providing a playbackmodifier signal to the second participant device 108 b to cause adigital media player at the second participant device 108 b to performthe playback modification.

As shown, the participant devices 108 a-108 b include a videoco-watching application 110. In particular, the video co-watchingapplication 110 may be a web application, a native application installedon the participant devices 108 a-108 b (e.g., a mobile application, adesktop application, a web-based browser application, etc.), or acloud-based application where all or part of the functionality isperformed by the server(s) 106. The video co-watching application 110can present (or cause the participant devices 108 a-108 b to present)graphical user interfaces such as a synchronized digital content videochat interface. The synchronized digital content video chat interfacecan include a consolidated live video stream for a video chat and canalso include a digital media player portraying a stream of co-watchingdigital video content. In some embodiment, the synchronized digitalcontent video chat interface can include a co-watching digital videocontent selection menu for selecting an item of co-watching digitalvideo content. In some embodiments, the video co-watching application110 provides a selectable option for a participant to navigate to avideo co-watching content selection menu for selecting co-watchingdigital video content to share across client devices. In these or otherembodiments, the video co-watching application 110 provides a video chatelement within a display of co-watching digital video content (e.g., aspart of the digital media player) and that is selectable to inviteparticipant devices to join a video chat.

As shown, the environment also includes a third-party digital contentprovider system 112. The video co-watching system 102 can exchangedigital information with the third-party digital content provider system112 (e.g., via one or more APIs) for integrating a digital media playerwithin a synchronized digital content video chat interface of the videoco-watching application 110. The video co-watching system 102 canreceive other information from the third-party digital content providersystem 112 as well, such as encrypted co-watching digital video contentidentifiers that correspond to particular co-watching digital videocontent, and that, when provided to the participant devices 108 a-108 b,cause the participant devices 108 a-108 b to access and present thecorresponding co-watching digital video content. In some embodiments,the third-party digital content provider system 112 can include aco-watching digital video content database 114 for storing digital videocontent for presentation as video co-watching content.

In some embodiments, the video co-watching system 102 communicates withthe third-party digital content provider system 112 to receive playbackmodifier signals from the third-party digital content provider system112 that indicate various playback modifications performed by clientdevices. To elaborate, in embodiments where the video co-watching system102 utilizes one or more APIs of the third-party digital contentprovider system 112 to integrate a digital media player of thethird-party digital content provider system 112 into the synchronizeddigital content video chat interface, the video co-watching system 102receives playback modifier signals (e.g., from the third-party digitalcontent provider system 112 and/or the participant device 108 a) basedon user interaction with the digital media player. In addition, thevideo co-watching system 102 can synchronize the playback of theco-watching digital video content by causing other participant devicesto perform the same playback modification in relation to theirindividual streams of co-watching digital video content.

As illustrated in FIG. 1 , the environment includes the server(s) 106.The server(s) 106 may generate, store, process, receive, and transmitelectronic data, such as user interface information, co-watching digitalvideo content selection information, playback modifier signals, and userinteraction information. For example, the server(s) 106 can transmitdata to the first participant device 108 a to provide a synchronizeddigital content video chat interface via the video co-watchingapplication 110. In addition, the video co-watching system 102 canreceive an indication of a selection of co-watching digital videocontent from the first participant device 108 a and can provideinformation to the second participant device 108 b to cause the secondparticipant device 108 b to present the same co-watching digital videocontent. In some embodiments, the server(s) 106 comprises a digitalcontent server. The server(s) 106 can also comprise an applicationserver, a communication server, a web-hosting server, a socialnetworking server, a video communication server, or a digitalcommunication management server.

As shown in FIG. 1 , the server(s) 106 can also include the videoco-watching system 102 implemented as part of a social networking system104. The social networking system 104 can communicate with theparticipant devices 108 a-108 b. As described in further detail below,the social networking system 104 can determine and store informationabout participant devices 108 a-108 b including connection informationbetween participants such as levels of affinity between socialnetworking accounts associated with the participants.

In some embodiments, though not illustrated in FIG. 1 , the environmentmay have a different arrangement of components and/or may have adifferent number or set of components altogether. For example, theenvironment can include any number of participant devices, and theparticipant devices (e.g., the participant devices 108 a-108 b) maycommunicate directly with the video co-watching system 102, bypassingthe network 116. Additionally, the video co-watching system 102 caninclude one or more additional databases (e.g., co-watching digitalvideo content database or a social media account database) housed on theserver(s) 106 or elsewhere in the environment. Further, the videoco-watching system 102 may be implemented by (e.g., located entirely orin part) on one or more other components of the environment. Forexample, the video co-watching system 102 may be implemented by theparticipant devices 108 a-108 b, the server(s) 106 (externally from thesocial networking system 104), and/or a third-party device. As anotherexample, the social networking system 104 can provide co-watchingdigital content directly from a co-watching digital video contentdatabase stored on the server(s) 106 (rather than through thethird-party digital content provider system 112).

As mentioned above, the video co-watching system 102 can provide asynchronized digital content video chat interface that includes aconsolidated live video stream and a digital media player. Inparticular, the video co-watching system 102 can enable participantdevices (e.g., the participant devices 108 a-108 b) to participate in agroup video chat (via the consolidated live video stream) whilesimultaneously presenting co-watching digital video content (via thedigital media player). FIG. 2 illustrates the participant device 108 apresenting a synchronized digital content video chat interface 202 inaccordance with one or more embodiments.

As illustrated in FIG. 2 , the participant device 108 a presents thesynchronized digital content video chat interface 202 including aconsolidated live video stream 206 and a digital media player 204. Theconsolidated live video stream 206 portrays live video streams capturedby respective participant devices participating together in a videochat. For example, the consolidated live video stream 206 includes onelive video stream (e.g., the larger live video stream) captured by adifferent participant device (e.g., the participant device 108 b) andanother live video stream (e.g., the smaller live video stream in theupper-right of the consolidated live video stream 206) captured by theparticipant device 108 a. As shown, the participant device 108 bcaptures a live video stream which the video co-watching system 102provides as part of the consolidated live video stream 206 forfacilitating a video chat. Indeed, the video co-watching system 102receives and provides live video streams to participant devices engagedin a common video chat, such as the participant device 108 a and theparticipant device 108 b.

As also illustrated in FIG. 2 , the participant device 108 a presentsthe digital media player 204. In particular, the digital media player204 presents co-watching digital video content for simultaneous displaywith the consolidated live video stream 206. In some embodiments, thevideo co-watching system 102 provides the digital media player 204 aspart of the video co-watching application 110. In other embodiments, thevideo co-watching system 102 does not provide the digital media player204 as a native or internal part of the video co-watching applicationbut instead provides access to the digital media player 204 provided bythe third-party digital content provider system 112. For example, thevideo co-watching system 102 provides a sort of window as part of thevideo co-watching application 110 whereby the participant device 108 aaccesses the digital media player of the third-party digital contentprovider system 112. Indeed, the video co-watching system 102 accessesone or more application programming interfaces (“APIs”) of thethird-party digital content provider system 112 to integrate the digitalmedia player 204 from the third-party digital content provider system112 for display as part of the synchronized digital content video chatinterface 202.

In one or more embodiments, the video co-watching system 102 providesco-watching digital video content to the participant device 108 a (andto the participant device 108 b). Indeed, in these embodiments, thevideo co-watching system 102 stores co-watching digital video contentwithin a database and provides the co-watching digital video content forselection and playback at the participant devices 108 a-108 b. In someembodiments, the video co-watching system 102 does not provide theco-watching digital video content. Instead, the video co-watching system102 provides a way for the participant devices 108 a-108 b to access theco-watching digital video content from the third-party digital contentprovider system 112.

For example, the video co-watching system 102 provides the digital mediaplayer 204 (as part of the video co-watching application 110) but doesnot directly provide co-watching digital video content. Rather, thevideo co-watching system 102 provides access to play the co-watchingdigital video content from the third-party digital content providersystem 112 by way of the digital media player 204. As another example,the video co-watching system 102 directly provides neither theco-watching digital video content nor the digital media player 204.Rather, the video co-watching system 102 accesses one or more APIs fromthe third-party digital content provider system 112 to integrate thedigital media player 204 from the third-party digital content providersystem 112 (e.g., as a window to a web interface for the digital mediaplayer 204 and not as a native component of the video co-watchingapplication 110). Such integration of the digital media player 204further provides access to co-watching digital video content hosted bythe third-party digital content provider system 112.

By integrating the digital media player 204 in this way, the digitalmedia player 204 may have a different appearance and/or differentavailable functionality (e.g., for manipulating playback) for thethird-party digital content provider system 112 than it does fordifferent third-party digital content provider systems. Indeed,depending on a third-party digital content provider system selected by aparticipant, the video co-watching system 102 can provide access todifferent digital media players as part of the synchronized digitalcontent video chat interface 202.

In some embodiments, the video co-watching system 102 generates elementsof the digital media player 204 that look and feel native to the videoco-watching application 110 but that integrate or interact withfunctionality of third-party digital content provider system 112.Indeed, the video co-watching system 102 can provide playback controls208 that look as though they are part of the video co-watchingapplication 110 (e.g., with a matching color scheme, theme, or layout)but that are tied to functionality of the third-party digital contentprovider system 112. Thus, based on user interaction with the playbackcontrols 208, the third-party digital content provider system 112pauses, plays, rewinds, skips, or fast forwards the co-watching digitalvideo content (and provides a corresponding playback modifier signal tothe video co-watching system 102).

As shown in FIG. 2 , the digital media player 204 includes playbackcontrols 208. More specifically, the digital media player 204 includesthe playback controls 208 for implementing playback modifications suchas pausing, skipping, fast forwarding, or rewinding co-watching digitalvideo content. Based on identifying an indication of a playbackmodification from the participant device 108 a, the video co-watchingsystem 102 further causes the digital media player at the participantdevice 108 b to perform the same modification. For instance, the videoco-watching system 102 transmits a playback modifier signal to theparticipant device 108 b to cause the digital media player at theparticipant device 108 b to perform the playback modification.

As further illustrated in FIG. 2 , the synchronized digital contentvideo chat interface 202 includes a first audio control option 210 and asecond audio control option 212. More specifically, the first audiocontrol option 210 is dedicated to controlling a volume setting for thedigital media player 204, and the second audio control option 212 isdedicated to controlling a volume setting for the consolidated livevideo stream 206. Indeed, the video co-watching system 102 can receiveindications of different user inputs with respect to the first audiocontrol option 210 and the second audio control option 212 to adjust thevolume settings differently. In some embodiments, the video co-watchingsystem 102 automatically modifies (or causes the participant device 108a to modify) the volume settings for the digital media player 204 andthe consolidated live video stream 206 (e.g., based on changes to thelive video streams from the participant devices or audio of theco-watching digital video content). For example, as the co-watchingdigital video content plays through a quieter portion, the videoco-watching system 102 can automatically lower the volume setting forthe consolidated live video stream 206 so the co-watching digital videocontent is still audible. As another example, if participants begin tospeak, the video co-watching system 102 can increase the volume of theof live video stream and decrease the volume of the co-watching digitalvideo content.

As mentioned, the video co-watching system 102 can facilitateco-watching sessions for participant devices (e.g., the participantdevices 108 a-108 b) to engage in a video chat while simultaneouslypresenting co-watching digital video content. FIG. 3 illustrates aseries of acts 302-312 that the video co-watching system 102 performs tofacilitate co-watching among the participant devices 108 a-108 b inaccordance with one or more embodiments.

As illustrated in FIG. 3 , the video co-watching system 102 performs anact 302 to facilitate a video chat between the participant devices 108a-108 b. In particular, the video co-watching system 102 receives afirst live video stream captured by the participant device 108 a andprovides the first live video stream for display at the participantdevice 108 b. Similarly, the video co-watching system 102 receives asecond live video stream captured by the participant device 108 b andprovides the second live video stream for display at the participantdevice 108 a. Thus, the video co-watching system 102 provides real time(or near real time) video communication between the participant devices108 a and 108 b.

As also illustrated, the video co-watching system 102 performs an act304 to provide access to co-watching digital video content.Particularly, the video co-watching system 102 provides a co-watchingdigital video content selection menu based on user interaction to beginco-watching. For instance, the video co-watching system 102 receives anindication of a user selection to select co-watching digital videocontent for initiating a co-watching session from the participant device108 a. In response, the video co-watching system 102 provides access toa co-watching digital video content selection menu (either directly fromthe video co-watching system 102 or by integrating APIs from thethird-party digital content provider system 112). Within the co-watchingdigital video content selection menu, the video co-watching system 102provides access to selectable items of co-watching digital videocontent. In some embodiments, the video co-watching system 102 populatesthe co-watching digital video content selection menu with recommenddigital videos based on social graph information, as indicated by edgesand nodes of the social graph associated with the user accountcorresponding to the participant device 108 a. Additional informationregarding social graphs is provided below with reference to FIG. 15 .

The video co-watching system 102 further performs an act 306 to identifyan indication to begin co-watching. More particularly, the videoco-watching system 102 identifies a user selection of an item ofco-watching digital video content from the co-watching digital videocontent selection menu. Based on receiving an indication of a userselection, the video co-watching system 102 causes the participantdevice 108 b to access and play the co-watching digital video contentselected at the participant device 108 a. In some embodiments, the videoco-watching system 102 receives the indication of the user selectionfrom the participant device 108 a, while in other embodiments, the videoco-watching system 102 receives the indication of the user selectionfrom the third-party digital content provider system 112. In one or moreembodiments, the video co-watching system 102 facilitates co-watchingonly between participant devices associated with the social networkingsystem 104. For instance, in some embodiments, the video co-watchingsystem 102 only provides an option to begin co-watching upon determiningthat one or more participant devices (or, some cases, all participantdevices) participating in the video chat are connected, as indicated bynodes and edges of a social graph (as described in further detail inrelation to FIG. 15 ).

Indeed, in embodiments where the video co-watching system 102 integratesa digital media player from (and provides access to co-watching digitalvideo content from) the third-party digital content provider system 112,the video co-watching system 102 may not directly receive an indicationof a user selection of co-watching digital video content. Instead, thevideo co-watching system 102 integrates the co-watching digital videocontent selection menu from the third-party digital content providersystem 112 and receives an indication of a user selection from thethird-party digital content provider system 112. For example, the videoco-watching system 102 receives the indication in the form of anencrypted co-watching digital video content identifier that obfuscatesthe identity of the selected co-watching digital video content from thevideo co-watching system 102 (and from the server(s) 106) but thatcauses a participant device to access and play the correspondingco-watching digital video content. Additional detail regarding theco-watching digital video content identifier is provided below inrelation to FIG. 4 .

As illustrated in FIG. 3 , the video co-watching system 102 furtherperforms an act 308 to provide a synchronized digital content video chatinterface (e.g., the synchronized digital content video chat interface202). Indeed, the video co-watching system 102 performs the act 308 inresponse to the indication of a user selection of co-watching digitalvideo content. For example, the video co-watching system 102 providesthe synchronized digital content video chat interface 202 to theparticipant device 108 a and provides a synchronized digital contentvideo chat interface to the participant device 108 b. Thus, the videoco-watching system 102 facilitates simultaneous presentation of theco-watching digital video content together with a consolidated livevideo stream for video chatting.

In addition, the video co-watching system 102 performs an act 310 toidentify a modification to playback of the co-watching digital videocontent. More specifically, the video co-watching system 102 receives anindication of a playback modification made at the participant device. Insome embodiments (e.g., where the video co-watching system 102 providesthe digital media player 204 directly), the video co-watching system 102receives the indication of the playback modification from theparticipant device 108 a. In other embodiments (e.g., where the videoco-watching system 102 provides access to a digital media player fromthe third-party digital content provider system 112), the videoco-watching system 120 receives the indication of the playbackmodification from the third-party digital content provider system 112.

The video co-watching system 102 receives the indication of the playbackmodification in the form of a playback modifier signal that indicates amodification such as play, pause, fast forward, rewind, or skip. Forexample, the playback modifier signal can include information includingthe type of modification (e.g., play, pause, fast forward, rewind orskip) and a timestamp within the co-watching digital video content wherethe modification was performed at the participant device 108 a (andtherefore where the modification is to be performed at the participantdevice 108 b). In some embodiments, the video co-watching system 102performs the act 310 based on modifications to playback made at theparticipant device 108 a or the participant device 108 b. Indeed, thevideo co-watching system 102 can enable any participant device involvedin co-watching to modify playback, not just the device that initiatedthe co-watching digital video content.

Based on identifying the modification to the playback, the videoco-watching system 102 further performs an act 312 to synchronizeplayback by transmitting a media player playback modifier signal. Inparticular, the video co-watching system 102 transmits the playbackmodifier signal to the participant device 108 b to cause the participantdevice 108 b to perform the same modification made at the participantdevice 108 a at the same timestamp within the co-watching digital videocontent. Thus, the video co-watching system 102 synchronizes playback ofthe co-watching digital video content at the participant devices 108 aand 108 b so that participants can react and contemporaneouslyexperience the co-watching digital video content together in real time(or near real time).

Apart from synchronizing playback using playback modifier signals (inresponse to identifying a modification to playback at one of theparticipant devices 108 a or 108 b), the video co-watching system 102need not control the playback of the co-watching digital video contentat the participant devices 108 a and 108 b. Indeed, in some embodiments,the video co-watching system 102 does not host a central source for theco-watching digital video content used to keep each participant device108 a and 108 b in lock step during playback. Rather, the videoco-watching system 102 relies on the individual participant devices 108a and 108 b to perform playback of their own independent streams at thesame speed and only interrupts the playback for synchronization based onidentifying a playback modification.

In some embodiments, the video co-watching system 102 performsadditional or alternative acts and/or performs the acts 302-312 in adifferent order. For example, the video co-watching system 102 canenable the participant device 108 a to begin presenting co-watchingdigital video content before participating in a video chat. Morespecifically, the video co-watching system 102 causes the participantdevice 108 a to present co-watching digital video content (e.g., via thedigital media player 204) and provides a selectable video chat optionwithin the digital media player 204.

As another example, the video co-watching system 102 causes theparticipant device 108 a to present digital video content forindependent viewing while also including an option to invite otherparticipant devices to co-watch the digital video content. The videoco-watching system 102 further provides a co-watching option for displaytogether with the digital video content, where the co-watching option isselectable to begin co-watching the digital video content by causingboth the participant device 108 a and the participant device 108 b topresent the digital video content as co-watching digital video content.In some embodiments, the video co-watching system 102 only provides anoption to begin co-watching upon determining that the participant device108 a is associated with the social networking system 104. In these orother embodiments, upon selection of an option begin co-watching, thevideo co-watching system 102 provides a list of users to invite toco-watch, the list including users connected with the user of theparticipant device 108 a within a social graph, as further described inrelation to FIG. 15 below.

Based on user interaction with a video chat option presented with theco-watching digital video content, the video co-watching system 120 caninitiate a video chat between the participant devices 108 a-108 b andcan provide the synchronized digital content video chat interface 202that includes the digital media player 204 and the consolidated livevideo stream 206. Thus, the video co-watching system 102 can enable theparticipant device 108 a to initiate a video chat from a presentation ofco-watching digital video content as well initiate a presentation ofco-watching digital video content from a video chat.

As mentioned, the video co-watching system 102 can receive a co-watchingdigital video content identifier corresponding to a particular item ofco-watching digital video content and can provide the co-watchingdigital video content identifier to cause a participant device to streamthe co-watching digital video content. In particular, the videoco-watching system 102 can provide a co-watching digital video contentidentifier to cause a participant device to stream co-watching digitalvideo content from the third-party digital content provider system 112without the video co-watching system 102 identifying the co-watchingdigital video content. FIG. 4 illustrates receiving and providing anencrypted co-watching digital video content identifier in accordancewith one or more embodiments.

As illustrated in FIG. 4 , the participant device 108 a receives ordetects user interaction selecting co-watching digital video contentfrom a co-watching digital video content selection menu. Based on theuser interaction, the participant device 108 a provides an indication ofthe selection of the co-watching digital video content to thethird-party digital content provider system 112. For example, theindication includes information identifying a particular item ofco-watching digital video content from the co-watching digital videocontent database 114.

The third-party digital content provider system 112 further provides anencrypted co-watching digital video content identifier 402 (representedby the encrypted value “AXB74C12”) to the video co-watching system 102.The encrypted co-watching digital video content identifier 402 indicatesthe selected co-watching digital video content but also encrypts theidentity of the co-watching digital video content so that the videoco-watching system 102 does not determine the identity (or otherinformation) regarding the co-watching digital video content. AlthoughFIG. 4 illustrates an encrypted co-watching digital video contentidentifier 402, in some embodiments the co-watching digital videocontent identifier is not encrypted.

Based on receiving the encrypted co-watching digital video contentidentifier 402, the video co-watching system 102 does not determineinformation about the co-watching digital video content but transmitsthe encrypted co-watching digital video content identifier 402 to theparticipant device 108 b. By transmitting the encrypted co-watchingdigital video content identifier 402 to the participant device 108 b,the video co-watching system 102 causes the digital media player at theparticipant device 108 b to access and present the co-watching digitalvideo content indicated by the encrypted co-watching digital videocontent identifier 402. Specifically, the participant device 108 b cantransmit the encrypted co-watching digital video content identifier tothe third-party digital content provider system 112 to access theco-watching digital video content. By relaying the encrypted co-watchingdigital video content identifier 402 in this way, the video co-watchingsystem 102 facilitates co-watching of co-watching digital video contentacross the participant devices 108 a and 108 b while maintaining privacyand data security of co-watching digital video content and user-specificviewing information, even for co-watching digital video content hostedby the third-party digital content provider system 112. Additionally, byusing the encrypted co-watching digital video content identifier 402,the video co-watching system 102 provides enhanced security and privacyby preventing third-party systems (e.g., the third-party digital contentprovider system 112) from accessing sensitive information about theparticipant devices 108 a and 108 b, such as user interactions at eachparticipant device, live digital video streams (e.g., chat streamsbetween participant devices), digital communications between participantdevices, and relationship information regarding user accounts associatedwith the participant devices 108 a and 108 b that engage in co-watchingand/or video chatting together.

In some embodiments, as shown in FIG. 4 , the participant device 108 aprovides an indication of a user selection of co-watching digital videocontent to the video co-watching system 102. Based on receiving theindication of the user selection, the video co-watching system 102provides a request for an encrypted co-watching digital video contentidentifier 404 to the third-party digital content provider system 112.In response to receiving the request, the third-party digital contentprovider system 112 generates and provides the encrypted co-watchingdigital video content identifier 402 to the video co-watching system102. Thus, in some embodiments, the video co-watching system 102 causesthe third-party digital content provider system 112 to generate theencrypted co-watching digital video content identifier 402 to preventcollection of unnecessary information.

As mentioned above, during playback of co-watching digital videocontent, the video co-watching system 102 can receive a playbackmodifier signal from a participant device and can transmit the playbackmodifier signal to another participant device to cause the participantdevice to perform the corresponding playback modification. Inparticular, the video co-watching system 102 can nest the playbackmodifier signal within an existing data channel or data stream withoutcreating or sending a new data channel to the participant device. FIG. 5illustrates nesting a playback modifier signal within live video streamdata associated with a consolidated live video stream in accordance withone or more embodiments.

As illustrated in FIG. 5 , the participant device 108 a receives ordetects user interaction to modify playback of the co-watching digitalvideo content. In particular, the participant device 108 a receives userinteraction with the playback controls 208 within the digital mediaplayer 204 of the synchronized digital content video chat interface 202.As also illustrated in FIG. 5 , the video co-watching system 102facilitates a video chat by receiving and providing live video streamdata to and from the participant device 108 a and the participant device108 b. For example, the video co-watching system 102 receives the livevideo stream data 502 from the participant device 108 b and provides thelive video stream data 502 to the participant device 108 a for displaywithin the consolidated live video stream 206. In addition, the videoco-watching system 102 receives the live video stream data 504 a fromthe participant device 108 a and provides modified live video streamdata 504 b to the participant device 108 b.

As shown, the participant device 108 a receives a playback modificationin the form of a skip by detecting user input to move or scrub aplayback location indicator (represented by the gray circle) to a newtimestamp location along a timeline of the co-watching digital videocontent. Based on the user interaction to modify the playback, theparticipant device 108 a transmits or provides a playback modifiersignal 506 to the video co-watching system 102 that indicates theplayback modification. Based on receiving the playback modifier signal506, the video co-watching system 102 nests the playback modifier signal506 within the live video stream data 504 a. Indeed, the videoco-watching system 102 modifies the live video stream data 504 a togenerate the modified live video stream data 504 b that includes theplayback modifier signal 506. For instance, the video co-watching system102 nests the playback modifier signal 506 by including a data packetfor the playback modifier signal 506 within a series of data packets ofthe live video stream data 504 b for one or more live video streamscaptured by participant device(s). Thus, the video co-watching system102 includes the playback modifier signal 506 within an existing datastream for the consolidated live video stream of the participant device108 b.

In addition, the video co-watching system 102 provides the modified livevideo stream data 504 b to the participant device 108 b to cause thedigital media player at the participant device 108 b to perform the sameskip modification as was performed at the participant device 108 a. Forexample, the playback modifier signal 506 includes computer instructionsfor the digital media player to perform the modification, including atimestamp for where the modification takes place within the co-watchingdigital video content. Indeed, as shown, the video co-watching system102 displays the playback location indicator along the timeline at atimestamp corresponding to the timestamp of the modification made at theparticipant device 108 a.

The video co-watching system 102 further provides the playback modifiersignal 506 to the participant device 108 b within the live video streamdata 504 b. Upon receipt of the playback modifier signal 506, theparticipant device 108 b performs the playback modification indicated bythe playback modifier signal 506. For instance, the participant device108 b skips ahead within the playback to a timestamp corresponding tothe timestamp to which the provider device 108 a skipped. Thus, thevideo co-watching system 102 synchronizes playback of the co-watchingdigital video content across participant devices 108 a and 108 b inresponse to identifying a playback modification.

In some embodiments, the video co-watching system 102 generates aseparate playback modifier signal channel for transmitting the playbackmodifier signal 506 and to include in tandem with video stream data.Indeed, in these embodiments, the video co-watching system 102 receivesand provides the playback modifier signal 506 within a dedicatedplayback modifier signal channel transmitted together with video streamdata (e.g., the live video stream data 504 a or 504 b). Thus, ratherthan utilizing separate data streams for video stream data and theplayback modifier signal 506, the video co-watching system 102 utilizesunified video streams that include video stream data and the playbackmodifier signal 506.

As mentioned, the video co-watching system 102 can provide a video chatinterface for a consolidated live video stream and can initiate apresentation of co-watching digital video content across participantdevices. In particular, the video co-watching system 102 can initiate apresentation of co-watching digital video content across the participantdevices based on user interaction with a co-watching option within thevideo chat interface. FIGS. 6A-6C illustrate initiating a co-watchingsession from a video chat interface in accordance with one or moreembodiments. In particular, FIGS. 6A-6C illustrate initiating aco-watching session to present co-watching digital video content hostedand provided by the video co-watching system 102.

As illustrated in FIG. 6A, the participant device 108 a presents aconsolidated live video stream within a video chat interface 602. Inaddition, the video chat interface 602 includes a selectable menu option603. Based on user interaction to select (e.g., click, drag, or swipe)the menu option 603, the participant device 108 a displays (or the videoco-watching system 102 provides for display) a video chat menu. FIG. 6Billustrates the participant device 108 a presenting a video chat menu606 along with the consolidated live video stream 604 in accordance withone or more embodiments.

As illustrated in FIG. 6B, the video chat menu 606 includes selectableoptions to transfer a call (“Transfer Call”), create a sharable inviteto invite other participant devices to join the video chat (“CreateInvite”), initiate a co-watching session with the other participantdevices (e.g., the participant device 108 b) within the video chat(“Watch Together”), and share the display of the participant device 108a with other participant devices in the video chat (“Screen Share”).Based on user interaction with the co-watching option 607 (“WatchTogether”), the participant device 108 a displays (or the videoco-watching system 102 provides for display) a co-watching digital videocontent selection menu. FIG. 6C illustrates the participant device 108 adisplaying a co-watching digital video content selection menu 608 inaccordance with one or more embodiments.

As illustrated in FIG. 6C, the video co-watching system 102 provides andpopulates the co-watching digital video content selection menu 608 withitems of co-watching digital video content from the video co-watchingsystem 102. For example, the video co-watching system 102 providesselectable options of a “Cooking Show” video, a “World's Best Dogs”video, and a “Finance 101” video. In addition, the co-watching digitalvideo content selection menu 608 includes a search option to search forco-watching digital video content. Upon identifying a user selection ofone of the videos from the co-watching digital video content selectionmenu 608 (e.g., by receiving a co-watching digital video contentidentifier), the video co-watching system 102 provides the co-watchingdigital video content identifier for the selected video to otherparticipant devices (e.g., the participant device 108 b) within thevideo chat to cause the other participant devices to access and presentthe co-watching digital video content together with the video chat.

In addition (or alternatively) to enabling a participant device toinitiate a co-watching session for co-watching digital video contenthosted by the video co-watching system 102, the video co-watching system102 can enable a participant device to initiate a co-watching sessionfor co-watching digital video content hosted by a third-party system. Inparticular, the video co-watching system 102 can facilitate selection ofco-watching digital video content from the third-party digital contentprovider system 112 to initiate a co-watching session. FIGS. 7A-7Cillustrate initiating a co-watching session for third-party co-watchingdigital video content from a video chat interface in accordance with oneor more embodiments.

As illustrated in FIG. 7A, the participant device 108 a presents aconsolidated live video stream 704 together with a video chat menu 702.Similar to the discussion above regarding FIGS. 6A-6C, the video chatmenu 702 is accessible via user interaction with a menu option presentedwithin a video chat interface for the consolidated live video stream704. As shown, the video chat menu 702 includes various selectableoptions, including an option for initiating a co-watching session ofthird-party co-watching digital video content as well as options forinitiating a co-watching session of co-watching digital video contentfrom the video co-watching system 102. For instance, the video chat menu702 includes a “Facebook Watch” option, an “IGTV” option, and a“Third-Party System” option.

Based on user interaction with the “Facebook Watch” option or the “IGTV”(“Instagram TV”) option, the video co-watching system 102 provides aco-watching digital video content selection menu for selection ofco-watching digital video content hosted by the video co-watching system102 (or the social networking system 104). Based on user interactionwith the third-party system option 703 (“Third-Party System”), bycontrast, the video co-watching system 102 provides access toco-watching digital video content associated with the third-partydigital content provider system 112.

In some embodiments, the video co-watching system 102 provides access toa login interface for the third-party digital content provider system112 for the participant device 108 a to gain access to the third-partyco-watching digital video content. Indeed, the video co-watching system102 accesses one or more APIs of the third-party digital contentprovider system 112 to integrate (or provide an access window to) alogin interface from the third-party digital content provider system 112via the video co-watching application 110. In some embodiments, thethird-party digital content provider system 112 does not require loginto access co-watching digital video content (or determines that theparticipant device 108 a is already logged in), and instead providesaccess to co-watching digital video content based on user interactionwith the third-party system option 703. FIG. 7B illustrates a logininterface for accessing third-party co-watching digital video content inaccordance with one or more embodiments.

As illustrated in FIG. 7B, the participant device 108 a displays a logininterface 706 for the third-party digital content provider system 112.In particular, the video co-watching system 102 provides access to thelogin interface 706 for the third-party digital content provider system112 to enable the participant device 108 a to interact with thethird-party digital content provider system 112. Indeed, based on entryof third-party system credentials, the participant device 108 a gainsaccess to co-watching digital video content hosted by the third-partydigital content provider system 112. For example, the video co-watchingsystem 102 facilitates communication between the participant device 108a and the third-party digital content provider system 112 to log in andselected co-watching digital video content from a menu of thethird-party digital content provider system 112. FIG. 7C illustrates athird-party co-watching digital video content selection menu inaccordance with one or more embodiments.

As illustrated in FIG. 7C, the participant device 108 a displays thethird-party co-watching digital video content selection menu 708. Thethird-party co-watching digital video content selection menu 708includes selectable items of co-watching digital video content presentedas if the participant device 108 a was displaying an interface of anapplication for the third-party digital content provider system 112. Forexample, the third-party co-watching digital video content selectionmenu 708 includes various themed videos such as “#Videocall” videos and“#petparent” videos. Indeed, the third-party co-watching digital videocontent selection menu 708 includes the displayed videos within a“Discover” pane associated with the third-party digital content providersystem 112.

The third-party co-watching digital video content selection menu 708also includes a “Following” pane selectable to display videos associatedwith users, topics, or accounts that a participant follows within thethird-party digital content provider system 112. In some embodiments,the third-party co-watching digital video content selection menu 708includes options for accessing other panes as well, such as a “Watched”pane (for videos previously viewed) and an “Uploads” pane (for videosuploaded by the participant). Further, the third-party co-watchingdigital video content selection menu 708 includes a search option tosearch for co-watching digital video content within the third-partydigital content provider system 112 (e.g., within the co-watchingdigital video content database 114).

In response to user selection of a video from the “Discover” pane, the“Following” pane, or some other pane, the video co-watching system 102causes the participant device 108 a and the participant device 108 b topresent the selected digital video as co-watching digital video content.In particular, as described above, the video co-watching system 102accesses (or receives) an encrypted co-watching digital video contentidentifier corresponding to the selected digital video and provides theencrypted co-watching digital video content identifier to participantdevice 108 b. The video co-watching system 102 thus facilitatessimultaneous co-watching of the digital video across the participantdevices 108 a and 108 b.

As mentioned above, the video co-watching system 102 can provide audiocontrols for a digital media player and for a consolidated live videostream. In particular, the video co-watching system 102 can modify avolume setting associated with a digital media player independently of avolume setting associated with a consolidated live video stream. FIGS.8A-8B illustrate changing volume settings for a digital media player anda consolidated live video stream in accordance with one or moreembodiments.

As illustrated in FIG. 8A, the participant device 108 a displays adigital media player 802 and a consolidated live video stream 804 (e.g.,as part of a synchronized digital content video chat interface). Thedigital media player 802 includes (or corresponds to) an audio controloption 806, and the consolidated live video stream 804 includes (orcorresponds to) an audio control option 808. Based on user interactionwith the audio control option 806, the video co-watching system 102adjusts (or causes the participant device 108 a to adjust) the volumesetting for the digital media player 802 while maintaining (orrefraining from adjusting) the volume setting for the consolidated livevideo stream 804. Similarly, based on user interaction with the audiocontrol option 808, the video co-watching system 102 adjusts (or causesthe participant device 108 a to adjust) the volume setting for theconsolidated live video stream 804 while maintaining (or refraining fromadjusting) the volume setting for the digital media player 802.

In some embodiments, the video co-watching system 102 automaticallymodifies volume settings. To elaborate, the video co-watching system 102modifies a volume setting for the digital media player 802 and/or theconsolidated live video stream 804 without user interaction. FIG. 8Billustrates the audio control option 806 and the audio control option808 with different volume settings than in FIG. 8A in accordance withone or more embodiments. The volume settings illustrated in FIG. 8B area result of either automatic adjustment by the video co-watching system102 or based on user interaction.

As illustrated in FIG. 8B, the volume settings indicated by the audiocontrol option 806 and the audio control option 808 are adjusted toincrease the volume of the co-watching digital video content anddecrease the volume of the consolidated live video stream 804. Toautomatically modify volume settings, the video co-watching system 102determines or detects changes in an audio amplitude associated with theco-watching digital video content during playback (e.g., through louderand quieter parts of a video). For example, the video co-watching system102 monitors audio amplitudes associated with a microphone of theparticipant device 108 a and/or volume information associated with theco-watching digital video content. Based on volume changes duringplayback of the co-watching digital video content, the video co-watchingsystem 102 adjusts the volume setting of the digital media player 802and/or the consolidated live video stream 804 to keep both theco-watching digital video content and the consolidated live video stream804 audible (or to emphasize one more than the other). In someembodiments, the video co-watching system 102 also (or alternatively)determines external noise around the participant device 108 a based onbackground noise capture by a microphone and automatically modifies thevolume setting to account for the background noise (e.g., by increasingvolume of the digital media player 802 and/or the consolidated livevideo stream 804).

As shown in FIG. 8B, the co-watching digital video content hasprogressed to a different (and perhaps quieter) part during playback.Thus, the video co-watching system 102 automatically increases thevolume of the digital media player 802 and decreases the volume of theconsolidated live video stream 804 to, for example, maintain a constantvolume ratio or disparity between the two. For instance, the videoco-watching system 102 compares an average decibel level of theco-watching digital video content with an average decibel level of theconsolidated live video stream 804 over a threshold period of time(e.g., 10 seconds or 30 seconds) and automatically adjusts volumesettings to keep the ratio between the decibel levels the same (orwithin a threshold measure of change).

In some embodiments, the video co-watching system 102 monitors userinteractions for volume adjustment over time and trains a machinelearning model (e.g., a neural network) to automatically adjust volumesettings based on learned user adjustments. To elaborate, the videoco-watching system 102 trains the machine learning model over a set oftraining data that includes sample co-watching digital video content,sample video chat content, and ground-truth (e.g., user-defined) volumesettings corresponding to the sample co-watching digital video contentand the sample video chat content (e.g., including differentground-truth volume settings for different timestamps of the contentthat correspond to different audio amplitudes). Thus, the videoco-watching system 102 can implement the trained machine learning modelto automatically adjust volume settings as audio amplitudes change forco-watching digital video content and video chat content.

As mentioned above, the video co-watching system 102 can accommodatemore than two participant devices in a video chat. Indeed, the videoco-watching system 102 can facilitate video chatting and presentation ofco-watching digital video content across larger numbers of participantdevices. FIG. 9 illustrates the participant device 108 a displaying asynchronized digital content video chat interface that includes adigital media player and a consolidated live video stream 902 with morethan two participants in accordance with one or more embodiments. Asillustrated in FIG. 9 , the consolidated live video stream 902 includesstreams from eight participant devices participating in a group videochat.

As described above, the video co-watching system 102 can receive anindication of a playback modification from any of the participant deicescorresponding to the eight participants in the video chat. Based onreceiving the playback modification, the video co-watching system 102can generate and provide a playback modifier signal (e.g., nested withinlive video stream data) to the other participant devices to cause theparticipant devices to perform the modification and continue withsynchronized playback of the co-watching digital video content. Indeed,the video co-watching system 102 can cause the participant devices toperform the modification while also providing the consolidated livevideo stream 902 to the participant devices.

In one or more embodiments, the video co-watching system 102 can providea digital media player together with a messaging interface. Morespecifically, rather than providing a synchronized digital content videochat interface, the video co-watching system 102 provides a synchronizeddigital content messaging interface that includes a digital media playerand a messaging interface. FIG. 10 illustrates the participant device108 a displaying a synchronized digital content video chat interface1002 that includes a digital media player 1004 and a messaging interface1006.

As shown in FIG. 10 , the messaging interface 1006 includes messages fora group message thread. The video co-watching system 102 thusfacilitates the participant devices 108 a and 108 b to message eachother while simultaneously presenting co-watching digital video contentvia the digital media player 1004. The messaging interface 1006 canpresent messages, images, attachments, and other content shared byparticipant devices within a group message thread.

For simultaneous presentation with group video chats and/or messagethreads, in some embodiments, the video co-watching system 102facilitates co-listening to music. For example, the third-party digitalcontent provider system 112 can refer to a music streaming service fromwhich the video co-watching system 102 (or participant devices) canaccess music streams for playing together in a co-listening session.Thus, the video co-watching system 102 can synchronize playback of theco-listening music content as described above in relation to thethird-party digital content provider system—by transmitting a playbackmodifier signal to participant devices based on identifying a playbackmodification.

Looking now to FIG. 11 , additional detail will be provided regardingcomponents and capabilities of the video co-watching system 102.Specifically, FIG. 11 illustrates an example schematic diagram of thevideo co-watching system 102 on an example computing device 1100 (e.g.,one or more of the participant devices 108 a-108 b, and/or the server(s)106). As shown in FIG. 11 , the video co-watching system 102 may includea live video stream manager 1102, a digital media player manager 1104, aplayback synchronization manager 1106, a volume control manager 1108,and a storage manager 1110.

As mentioned, the video co-watching system 102 includes a live videostream manager 1102. In particular, the live video stream manager 1102manages, maintains, provides, transmits, streams, receives, relays, orpresents live video streams for a video chat between participantdevices. For example, the live video stream manager 1102 receives andprovides live video streams captured by participant devices for displaywithin a consolidated live video stream.

In addition, the video co-watching system 102 includes a digital mediaplayer manager 1104. In particular, the digital media player manager1104 manages, maintains, provides, displays, accesses, or integrates adigital media player as part of a synchronized digital content videochat interface. For example, the digital media player manager 1104receives indications of user interactions with playback controls tomodify playback of co-watching digital video content. The digital mediaplayer manager 1104 modifies playback of co-watching digital videocontent based on user interactions with the playback controls.

Further, the video co-watching system 102 includes a playbacksynchronization manager 1106. In particular, the playbacksynchronization manager 1106 manages, maintains, identifies, determines,or synchronizes playback of co-watching digital video content. Forexample, the playback synchronization manager 1106 receives a playbackmodifier signal from a participant device or from a third-party digitalcontent provider system. The playback synchronization manager 1106further provides the playback modifier signal to other participantdevices to cause the digital media players at the participant devices toperform the corresponding modification to playback of the co-watchingdigital video content.

As shown, the video co-watching system 102 also includes a volumecontrol manager 1108. In particular, the volume control manager 1108,manages, maintains, determines, detects, receives, identifies, adjusts,modifies, or changes volume settings associated with a digital mediaplayer and/or a consolidated live video stream. For example, the volumecontrol manager 1108 determines volume changes of co-watching digitalvideo content during playback and modifies volume settings based on thechanges, as described above. In some embodiments, the volume controlmanager 1108 identifies user interaction to adjust a volume setting ofeither a digital media player or a consolidated live video stream. Thevolume control manager 1108 thus modifies the corresponding volumesetting while maintaining other volume settings.

As also shown, the video co-watching system 102 includes a storagemanager 1110. In particular, the storage manager 1110 manages,maintains, receives, provides, determines, or identifies information forparticipant devices and/or co-watching digital video content. Indeed, inembodiments where the video co-watching system 102 hosts and providesco-watching digital video content, the storage manager 1110 storesco-watching digital video content within the database 1112 to provide toparticipant devices for playback during co-watching sessions. Thestorage manager 1110 further manages information such as storing anddistributing playback modifier signals, live digital video streams,co-watching digital video content identifiers (encrypted or otherwise),and volume information within the database 1112.

In one or more embodiments, each of the components of the videoco-watching system 102 are in communication with one another using anysuitable communication technologies. Additionally, the components of thevideo co-watching system 102 can be in communication with one or moreother devices including one or more client devices described above. Itwill be recognized that although the components of the video co-watchingsystem 102 are shown to be separate in FIG. 11 , any of thesubcomponents may be combined into fewer components, such as into asingle component, or divided into more components as may serve aparticular implementation. Furthermore, although the components of FIG.11 are described in connection with the video co-watching system 102, atleast some of the components for performing operations in conjunctionwith the video co-watching system 102 described herein may beimplemented on other devices within the environment.

The components of the video co-watching system 102 can include software,hardware, or both. For example, the components of the video co-watchingsystem 102 can include one or more instructions stored on acomputer-readable storage medium and executable by processors of one ormore computing devices (e.g., the computing device 1100). When executedby the one or more processors, the computer-executable instructions ofthe video co-watching system 102 can cause the computing device 900 toperform the methods described herein. Alternatively, the components ofthe video co-watching system 102 can comprise hardware, such as aspecial purpose processing device to perform a certain function or groupof functions. Additionally or alternatively, the components of the videoco-watching system 102 can include a combination of computer-executableinstructions and hardware.

Furthermore, the components of the video co-watching system 102performing the functions described herein may, for example, beimplemented as part of a stand-alone application, as a module of anapplication, as a plug-in for applications including content managementapplications, as a library function or functions that may be called byother applications, and/or as a cloud-computing model. Thus, thecomponents of the video co-watching system 102 may be implemented aspart of a stand-alone application on a personal computing device or amobile device. Alternatively or additionally, the components of thevideo co-watching system 102 may be implemented in any application thatallows creation and delivery of marketing content to users, including,but not limited to, various applications.

FIGS. 1-11 , the corresponding text, and the examples provide a numberof different systems, methods, and non-transitory computer readablemedia for providing and synchronizing co-watching digital video contentto participant devices for simultaneous presentation with a consolidatedlive video stream. In addition to the foregoing, embodiments can also bedescribed in terms of flowcharts comprising acts for accomplishing aparticular result. For example, FIG. 12 illustrates a flowchart of anexample sequence of acts in accordance with one or more embodiments.

While FIG. 12 illustrates acts according to some embodiments,alternative embodiments may omit, add to, reorder, and/or modify any ofthe acts shown in FIG. 12 . The acts of FIG. 12 can be performed as partof a method. Alternatively, a non-transitory computer readable mediumcan comprise instructions, that when executed by one or more processors,cause a computing device to perform the acts of FIG. 12 . In stillfurther embodiments, a system can perform the acts of FIG. 12 .Additionally, the acts described herein may be repeated or performed inparallel with one another or in parallel with different instances of thesame or other similar acts.

FIG. 12 illustrates an example series of acts 1200 for providing andsynchronizing co-watching digital video content to participant devicesfor simultaneous presentation with a consolidated live video stream. Asillustrated in FIG. 12 , the series of acts 1200 includes an act 1202 ofproviding a synchronized digital content video chat interface. Inparticular, the act 1202 can involve providing, for display to a firstparticipant device and a second participant device, a synchronizeddigital content video chat interface that includes a consolidated livevideo stream comprising live video streams from the first participantdevice and the second participant device, and a digital media playerportraying a first stream of co-watching digital video content at thefirst participant device and a second stream of the co-watching digitalvideo content at the second participant device.

The series of acts 1200 can include an act of providing, within thesynchronized digital content video chat interface, a first audio controloption for the consolidated live video stream and a second audio controloption for the digital media player. In addition, the series of acts1200 can include an act of, in response to user interaction with thefirst audio control option, modifying a volume setting associated withthe consolidated live video stream while maintaining a volume settingassociated with the digital media player. Further, the series of acts1200 can include an act of, in response to user interaction with thesecond audio control option, modifying the volume setting associatedwith the digital media player while maintaining the volume settingassociated with the consolidated live video stream. Additionally (oralternatively), the series of acts 1200 can include an act ofdetermining, during playback of the co-watching digital video content,changes to a first volume setting associated with the co-watchingdigital video content and an act of, based on the changes to the firstvolume setting, adjusting a second volume setting associated with theconsolidated live video stream such that the second volume setting isdifferent than the first volume setting.

As also illustrated in FIG. 12 , the series of acts 1200 includes an act1204 of identifying an indication of a modification to playback. Inparticular, the act 1204 can involve identifying an indication of amodification to playback of the co-watching digital video content fromthe first participant device. The modification to the playback of theco-watching digital video content can include one or more of pausing theco-watching digital video content, fast-forwarding the co-watchingdigital video content, skipping to a new playback timestamp of theco-watching digital video content, or rewinding the co-watching digitalvideo content at the first participant device and the second participantdevice.

Further, the series of acts 1200 includes an act 1206 of synchronizingplayback by transmitting a media player playback modifier signal. Inparticular, the act 1206 can involve, based on the indication,synchronizing playback of the co-watching digital video content at thesecond participant device and the first participant device bytransmitting a media player playback modifier signal to the secondparticipant device that causes the digital media player of the secondparticipant device to perform the modification to the second stream ofthe co-watching digital video content. For example, the act 1206 caninvolve receiving, from the third-party digital content provider system,a co-watching digital video content identifier based on user interactionselecting the co-watching digital video content at the first participantdevice and providing the co-watching digital video content identifier tothe second participant device to cause the second participant device tostream the co-watching digital video content from the third-partydigital content provider system. In some embodiments, the act 1206involves nesting the media player playback modifier signal within livevideo stream data associated with the consolidated live video stream. Inthe same or other embodiments, the act 1206 involves synchronizing theplayback of the co-watching digital video content by transmitting themedia player playback modifier signal to cause the second participantdevice to perform the one or more of pausing the co-watching digitalvideo content, fast-forwarding the co-watching digital video content,skipping to a new playback timestamp of the co-watching digital videocontent, or rewinding the co-watching digital video content.

The series of acts 1200 can include an act of providing the digitalmedia player to the first participant device and the second participantdevice by integrating the digital media player from a third-partydigital content provider system. In addition, the series of acts 1200can include an act of providing access to the co-watching digital videocontent to the first participant device and the second participantdevice from the third-party digital content provider system.

Further, the series of acts 1200 can include an act of identifying,based on user interaction with the synchronized digital content videochat interface at the second participant device, an indication of asecond modification to playback of the co-watching digital videocontent. The series of acts 1200 can also include an act of, based onthe indication of the second modification to the playback of theco-watching digital video content, synchronizing playback of theco-watching digital video content at the first participant device andthe second participant device by transmitting a second media playerplayback modifier signal to the first participant device that causes thedigital media player of the first participant device to perform thesecond modification of the first stream of the co-watching digital videocontent while portraying the consolidated live video stream.

Additionally (or alternatively), the series of acts 1200 can include anact of receiving, based on user interaction during the consolidated livevideo stream, an indication to begin co-watching at the firstparticipant device and the second participant device. Further, theseries of acts 1200 can include an act of providing the synchronizeddigital content video chat interface based on the indication to beginco-watching.

In some embodiments, the series of acts 1200 includes an act ofreceiving, from the third-party digital content provider system, anencrypted co-watching digital video content identifier based on userinteraction selecting the co-watching digital video content at the firstparticipant device. In these or other embodiments, the series of acts1200 includes an act of providing, without identifying additionalinformation associated with the co-watching digital video content, theencrypted co-watching digital video content identifier to the secondparticipant device to cause the second participant device to stream theco-watching digital video content from the third-party digital contentprovider system.

Embodiments of the present disclosure may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, suchas, for example, one or more processors and system memory, as discussedin greater detail below. Embodiments within the scope of the presentdisclosure also include physical and other computer-readable media forcarrying or storing computer-executable instructions and/or datastructures. In particular, one or more of the processes described hereinmay be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., a memory, etc.), and executes those instructions, therebyperforming one or more processes, including one or more of the processesdescribed herein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system.Computer-readable media that store computer-executable instructions arenon-transitory computer-readable storage media (devices).Computer-readable media that carry computer-executable instructions aretransmission media. Thus, by way of example, and not limitation,embodiments of the disclosure can comprise at least two distinctlydifferent kinds of computer-readable media: non-transitorycomputer-readable storage media (devices) and transmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed at a processor, cause a general-purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In someembodiments, computer-executable instructions are executed on ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer-executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, tablets, pagers, routers, switches, and the like. The disclosuremay also be practiced in distributed system environments where local andremote computer systems, which are linked (either by hardwired datalinks, wireless data links, or by a combination of hardwired andwireless data links) through a network, both perform tasks. In adistributed system environment, program modules may be located in bothlocal and remote memory storage devices.

Embodiments of the present disclosure can also be implemented in cloudcomputing environments. In this description, “cloud computing” isdefined as a model for enabling on-demand network access to a sharedpool of configurable computing resources. For example, cloud computingcan be employed in the marketplace to offer ubiquitous and convenienton-demand access to the shared pool of configurable computing resources.The shared pool of configurable computing resources can be rapidlyprovisioned via virtualization and released with low management effortor service provider interaction, and then scaled accordingly.

A cloud-computing model can be composed of various characteristics suchas, for example, on-demand self-service, broad network access, resourcepooling, rapid elasticity, measured service, and so forth. Acloud-computing model can also expose various service models, such as,for example, Software as a Service (“SaaS”), Platform as a Service(“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computingmodel can also be deployed using different deployment models such asprivate cloud, community cloud, public cloud, hybrid cloud, and soforth. In this description and in the claims, a “cloud-computingenvironment” is an environment in which cloud computing is employed.

FIG. 13 illustrates a block diagram of an example computing device 1300(e.g., the server(s) 106, the computing device 1100, and/or theparticipant devices 108 a-108 b) that may be configured to perform oneor more of the processes described above. One will appreciate that oneor more computing devices such as the computing device 1300 mayimplement the video co-watching system 102. As shown by FIG. 13 , thecomputing device 1300 can comprise a processor 1302, a memory 1304, astorage device 1306, an I/O interface 1308, and a communicationinterface 1310, which may be communicatively coupled by way of acommunication infrastructure 1312. While an example computing device1300 is shown in FIG. 13 , the components illustrated in FIG. 13 are notintended to be limiting. Additional or alternative components may beused in other embodiments. Furthermore, in certain embodiments, thecomputing device 1300 can include fewer components than those shown inFIG. 13 . Components of the computing device 1300 shown in FIG. 13 willnow be described in additional detail.

In one or more embodiments, the processor 1302 includes hardware forexecuting instructions, such as those making up a computer program. Forexample, to execute instructions, the processor 1302 may retrieve (orfetch) the instructions from an internal register, an internal cache,the memory 1304, or the storage device 1306 and decode and execute them.In one or more embodiments, the processor 1302 may include one or moreinternal caches for data, instructions, or addresses. For example, theprocessor 1302 may include one or more instruction caches, one or moredata caches, and one or more translation lookaside buffers (TLBs).Instructions in the instruction caches may be copies of instructions inthe memory 1304 or the storage device 1306.

The memory 1304 may be used for storing data, metadata, and programs forexecution by the processor(s). The memory 1304 may include one or moreof volatile and non-volatile memories, such as Random-Access Memory(“RAM”), Read Only Memory (“ROM”), a solid-state disk (“SSD”), Flash,Phase Change Memory (“PCM”), or other types of data storage. The memory1304 may be internal or distributed memory.

The storage device 1306 includes storage for storing data orinstructions. For example, storage device 1306 can comprise anon-transitory storage medium described above. The storage device 1306may include a hard disk drive (HDD), a floppy disk drive, flash memory,an optical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (USB) drive or a combination of two or more of these. Thestorage device 1306 may include removable or non-removable (or fixed)media, where appropriate. The storage device 1306 may be internal orexternal to the computing device 1300. In one or more embodiments, thestorage device 1306 is non-volatile, solid-state memory. In otherembodiments, the storage device 1306 includes read-only memory (ROM).Where appropriate, this ROM may be mask programmed ROM, programmable ROM(PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM),electrically alterable ROM (EAROM), or flash memory or a combination oftwo or more of these.

The I/O interface 1308 allows a user to provide input to, receive outputfrom, and otherwise transfer data to and receive data from computingdevice 1300. The I/O interface 1308 may include a mouse, a keypad or akeyboard, a touch screen, a camera, an optical scanner, networkinterface, modem, another known I/O devices or a combination of such I/Ointerfaces. The I/O interface 1308 may include one or more devices forpresenting output to a user, including, but not limited to, a graphicsengine, a display (e.g., a display screen), one or more output drivers(e.g., display drivers), one or more audio speakers, and one or moreaudio drivers. In certain embodiments, the I/O interface 1308 isconfigured to provide graphical data to a display for presentation to auser. The graphical data may be representative of one or more graphicaluser interfaces and/or any other graphical content as may serve aparticular implementation.

The communication interface 1310 can include hardware, software, orboth. In any event, the communication interface 1310 can provide one ormore interfaces for communication (e.g., packet-based communication)between the computing device 1300 and one or more other computingdevices or networks. For example, the communication interface 1310 mayinclude a network interface controller (NIC) or network adapter forcommunicating with an Ethernet or other wire-based network or a wirelessNIC (WNIC) or wireless adapter for communicating with a wirelessnetwork, such as a WI-FI.

Additionally, or alternatively, the communication interface 1310 mayfacilitate communications with an ad hoc network, a personal areanetwork (PAN), a local area network (LAN), a wide area network (WAN), ametropolitan area network (MAN), or one or more portions of the Internetor a combination of two or more of these. One or more portions of one ormore of these networks may be wired or wireless. As an example, thecommunication interface 1310 may facilitate communications with awireless PAN (WPAN) (e.g., a BLUETOOTH WPAN), a WI-FI network, a WI-MAXnetwork, a cellular telephone network (e.g., a Global System for MobileCommunications (GSM) network), or other suitable wireless network or acombination thereof.

Additionally, the communication interface 1310 may facilitatecommunications across various communication protocols. Examples ofcommunication protocols that may be used include, but are not limitedto, data transmission media, communications devices, TransmissionControl Protocol (“TCP”), Internet Protocol (“IP”), File TransferProtocol (“FTP”), Telnet, Hypertext Transfer Protocol (“HTTP”),Hypertext Transfer Protocol Secure (“HTTPS”), Session InitiationProtocol (“SIP”), Simple Object Access Protocol (“SOAP”), ExtensibleMark-up Language (“XML”) and variations thereof, Simple Mail TransferProtocol (“SMTP”), Real-Time Transport Protocol (“RTP”), User DatagramProtocol (“UDP”), Global System for Mobile Communications (“GSM”)technologies, Code Division Multiple Access (“CDMA”) technologies, TimeDivision Multiple Access (“TDMA”) technologies, Short Message Service(“SMS”), Multimedia Message Service (“MMS”), radio frequency (“RF”)signaling technologies, Long Term Evolution (“LTE”) technologies,wireless communication technologies, in-band and out-of-band signalingtechnologies, and other suitable communications networks andtechnologies.

The communication infrastructure 1312 may include hardware, software, orboth that connects components of the computing device 1300 to eachother. For example, the communication infrastructure 1312 may include anAccelerated Graphics Port (AGP) or other graphics bus, an EnhancedIndustry Standard Architecture (EISA) bus, a front-side bus (FSB), aHYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture(ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, amemory bus, a Micro Channel Architecture (MCA) bus, a PeripheralComponent Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serialadvanced technology attachment (SATA) bus, a Video Electronics StandardsAssociation local (VLB) bus, or another suitable bus or a combinationthereof.

As mentioned above, the video co-watching system 102 can operate as asocial networking system in various embodiments. In addition to thedescription given above, a social networking system may enable its users(such as persons or organizations) to interact with the system and witheach other. The social networking system may, with input from a user,create and store in the social networking system a social media accountassociated with the user. The social media account may includedemographic information, communication-channel information, andinformation on personal interests of the user. The social networkingsystem may also, with input from a user, create and store a record ofrelationships of the user with other users of the social networkingsystem, as well as provide services (e.g. wall posts, photo-sharing,online calendars and event organization, messaging, games, oradvertisements) to facilitate social interaction between or among users.

Also, the social networking system may allow users to post photographsand other multimedia content items to a user's profile page (typicallyknown as “wall posts” or “timeline posts”) or in a photo album, both ofwhich may be accessible to other users of the social networking systemdepending upon the user's configured privacy settings.

FIG. 14 illustrates an example network environment 1400 of a networkingsystem. The network environment 1400 includes a social networking system1402 (e.g., the social networking system 104), a user device 1406, and athird-party system 1408 connected to each other by a network 1404.Although FIG. 14 illustrates a particular arrangement of the socialnetworking system 1402, the user device 1406, the third-party system1408, and the network 1404, this disclosure contemplates any suitablearrangement of the devices, systems, and networks. For example, the userdevice 1406 and the social networking system 1402 may be physically orlogically co-located with each other in whole, or in part. Moreover,although FIG. 14 illustrates a single user device 1406, the socialnetworking system 1402, the third-party system 1408, and the network1404, this disclosure contemplates any suitable number of devices,systems, and networks.

This disclosure contemplates any suitable network. For example, one ormore portions of the network 1404 may include an ad hoc network, anintranet, an extranet, a virtual private network (VPN), a local areanetwork (LAN), a wireless LAN (WLAN), a wide area network (WAN), awireless WAN (WWAN), a metropolitan area network (MAN), a portion of theInternet, a portion of the Public Switched Telephone Network (PSTN), acellular telephone network, or a combination of two or more of these.The network 1404 may include one or more networks.

Links may connect the social networking system 1402, the user device1406, and the third-party system 1408 to the network 1404 or to eachother. In particular embodiments, one or more links include one or morewireline (e.g., Digital Subscriber Line (DSL) or Data Over Cable ServiceInterface Specification (DOCSIS)), wireless (e.g., Wi-Fi or WorldwideInteroperability for Microwave Access (WiMAX)), or optical (e.g.,Synchronous Optical Network (SONET) or Synchronous Digital Hierarchy(SDH)) links. In particular embodiments, one or more links each includean ad hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, aWAN, a WWAN, a MAN, a portion of the Internet, a portion of the PSTN, acellular technology-based network, a satellite communicationstechnology-based network, another link, or a combination of two or moresuch links. Links need not necessarily be the same throughout thenetwork environment 1400. One or more first links may differ in one ormore respects from one or more second links.

In particular embodiments, the user device 1406 may be an electronicdevice including hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by the userdevice 1406. For example, the user device 1406 may include any of thecomputing devices discussed above in relation to FIG. 11 . The userdevice 1406 may enable a network user to access the network 1404. Theuser device 1406 may enable its user to communicate with other usersassociated with other user devices.

In particular embodiments, the user device 1406 may include a webbrowser, such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME, MOZILLAFIREFOX, APPLE SAFARI, and may have one or more add-ons, plug-ins, orother extensions (e.g., toolbars). A user at the user device 1406 mayenter a Uniform Resource Locator (URL) or other address directing theweb browser to a particular server (such as server, or a serverassociated with the third-party system 1408), and the web browser maygenerate a Hypertext Transfer Protocol (HTTP) request and communicatethe HTTP request to server. The server may accept the HTTP request andcommunicate to the user device 1406 one or more Hypertext MarkupLanguage (HTML) files responsive to the HTTP request.

The user device 1406 may render a webpage based on the HTML files fromthe server for presentation to the user. For example, webpages mayrender from HTML files, Extensible Hypertext Markup Language (XHTML)files, or Extensible Markup Language (XML) files, according toparticular needs. Such pages may also execute scripts such as thosewritten in JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, combinations ofmarkup language and scripts such as AJAX (Asynchronous JAVASCRIPT andXML), and the like. Herein, reference to a webpage encompasses one ormore corresponding webpage files (which a browser may use to render thewebpage) and vice versa, where appropriate.

In particular embodiments, the social networking system 1402 may be anetwork-addressable computing system that can host an online network ofusers (e.g., a social networking system or an electronic messagingsystem). In some embodiments, such as the illustrated embodiment, thesocial networking system 1402 implements the video co-watching system102.

The social networking system 1402 may generate, store, receive, and sendnetworking data, such as user-profile data, concept-profile data, graphinformation (e.g., social-graph information), or other suitable datarelated to the online network of users. The social networking system1402 may be accessed by the other components of network environment 1400either directly or via the network 1404. In particular embodiments, thesocial networking system 1402 may include one or more servers. Eachserver may be a unitary server or a distributed server spanning multiplecomputers or multiple datacenters. Servers may be of various types, suchas web server, news server, mail server, message server, advertisingserver, file server, application server, exchange server, databaseserver, proxy server, another server suitable for performing functionsor processes described herein, or any combination thereof.

In one or more embodiments, each server may include hardware, software,or embedded logic components or a combination of two or more suchcomponents for carrying out the appropriate functionalities implementedor supported by a server. In particular embodiments, the socialnetworking system 1402 may include one or more data stores. Data storesmay be used to store various types of information. In particularembodiments, the information stored in data stores may be organizedaccording to specific data structures. In particular embodiments, eachdata store may be a relational, columnar, correlation, or anothersuitable database. Although this disclosure describes or illustratesparticular types of databases, this disclosure contemplates any suitabletypes of databases. Particular embodiments may provide interfaces thatenable the social networking system 1402, the user device 1406, or thethird-party system 1408 to manage, retrieve, modify, add, or delete, theinformation stored in a data store.

In particular embodiments, the social networking system 1402 may storeone or more social graphs in one or more data stores. In particularembodiments, a social graph may include multiple nodes—which may includemultiple user nodes (each corresponding to a particular user) ormultiple concept nodes (each corresponding to a particular concept)—andmultiple edges connecting the nodes. The social networking system 1402may provide users of the online network of users the ability tocommunicate and interact with other users. In particular embodiments,users may join the online network of users via the social networkingsystem 1402 and then add connections (e.g., relationships) to a numberof other users of the social networking system 1402 whom they want to beconnected to. Herein, the term “friend” may refer to any other user ofthe social networking system 1402 with whom a user has formed aconnection, association, or relationship via the social networkingsystem 1402.

In particular embodiments, the social networking system 1402 may provideusers with the ability to take actions on various types of items orobjects, supported by the social networking system 1402. For example,the items and objects may include groups or social networks to whichusers of the social networking system 1402 may belong, events orcalendar entries in which a user might be interested, computer-basedapplications that a user may use, transactions that allow users to buyor sell items via the service, interactions with advertisements that auser may perform, or other suitable items or objects. A user mayinteract with anything that is capable of being represented in thesocial networking system 1402 or by an external system of thethird-party system 1408, which is separate from the social networkingsystem 1402 and coupled to the social networking system 1402 via thenetwork 1404.

In particular embodiments, the social networking system 1402 may becapable of linking a variety of entities. For example, the socialnetworking system 1402 may enable users to interact with each other aswell as receive content from the third-party systems 1408 or otherentities, or to allow users to interact with these entities through anapplication programming interfaces (API) or other communicationchannels.

In particular embodiments, the third-party system 1408 may include oneor more types of servers, one or more data stores, one or moreinterfaces, including but not limited to APIs, one or more web services,one or more content sources, one or more networks, or any other suitablecomponents, e.g., that servers may communicate with. The third-partysystem 1408 may be operated by a different entity from an entityoperating the social networking system 1402. In particular embodiments,however, the social networking system 1402 and the third-party systems1408 may operate in conjunction with each other to provide socialnetworking services to users of the social networking system 1402 or thethird-party systems 1408. In this sense, the social networking system1402 may provide a platform, or backbone, which other systems, such asthe third-party systems 1408, may use to provide social networkingservices and functionality to users across the Internet.

In particular embodiments, the third-party system 1408 may include athird-party content object provider. A third-party content objectprovider may include one or more sources of content objects, which maybe communicated to a user device 1406. For example, content objects mayinclude information regarding things or activities of interest to theuser, such as movie showtimes, movie reviews, restaurant reviews,restaurant menus, product information and reviews, or other suitableinformation. As another example and not by way of limitation, contentobjects may include incentive content objects, such as coupons, discounttickets, gift certificates, or other suitable incentive objects.

In particular embodiments, the social networking system 1402 alsoincludes user-generated content objects, which may enhance a user'sinteractions with the social networking system 1402. User-generatedcontent may include anything a user can add, upload, send, or “post” tothe social networking system 1402. For example, a user communicatesposts to the social networking system 1402 from a user device 1406.Posts may include data such as status updates or other textual data,location information, photos, videos, links, music or other similar dataor media. Content may also be added to the social networking system 1402by a third-party through a “communication channel,” such as a newsfeedor stream.

In particular embodiments, the social networking system 1402 may includea variety of servers, sub-systems, programs, modules, logs, and datastores. In particular embodiments, the social networking system 1402 mayinclude one or more of the following: a web server, action logger,API-request server, relevance-and-ranking engine, content-objectclassifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user-profile store, connection store,third-party content store, or location store. The social networkingsystem 1402 may also include suitable components such as networkinterfaces, security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments, thesocial networking system 1402 may include one or more user-profilestores for storing social media accounts.

A social media account may include, for example, biographic information,demographic information, behavioral information, social information, orother types of descriptive information, such as work experience,educational history, hobbies or preferences, interests, affinities, orlocation. Interest information may include interests related to one ormore categories. Categories may be general or specific. For example, ifa user “likes” an article about a brand of shoes the category may be thebrand, or the general category of “shoes” or “clothing.” A connectionstore may be used for storing connection information about users. Theconnection information may indicate users who have similar or commonwork experience, group memberships, hobbies, educational history, or arein any way related or share common attributes.

The connection information may also include user-defined connectionsbetween different users and content (both internal and external). A webserver may be used for linking the social networking system 1402 to oneor more user device 1406 or one or more the third-party system 1408 viathe network 1404. The web server may include a mail server or othermessaging functionality for receiving and routing messages between thesocial networking system 1402 and one or more user device 1406. AnAPI-request server may allow the third-party system 1408 to accessinformation from the social networking system 1402 by calling one ormore APIs. An action logger may be used to receive communications from aweb server about a user's actions on or off social networking system1402. In conjunction with the action log, a third-party-content-objectlog may be maintained of user exposures to third-party-content objects.A notification controller may provide information regarding contentobjects to a user device 1406.

Information may be pushed to a user device 1406 as notifications, orinformation may be pulled from user device 1406 responsive to a requestreceived from user device 1406. Authorization servers may be used toenforce one or more privacy settings of the users of the socialnetworking system 1402. A privacy setting of a user determines howparticular information associated with a user can be shared. Theauthorization server may allow users to opt in to or opt out of havingtheir actions logged by the social networking system 1402 or shared withother systems (e.g., the third-party system 1408), such as by settingappropriate privacy settings. Third-party-content-object stores may beused to store content objects received from third parties, such as thethird-party system 1408. Location stores may be used for storinglocation information received from user device 1406 associated withusers. Advertisement-pricing modules may combine social information, thecurrent time, location information, or other suitable information toprovide relevant advertisements, in the form of notifications, to auser.

FIG. 15 illustrates example social graph 1500. In particularembodiments, the social networking system 1402 may store one or moresocial graphs 1500 in one or more data stores. In particularembodiments, social graph 1500 may include multiple nodes—which mayinclude multiple user nodes 1502 or multiple concept nodes 1504—andmultiple edges 1506 connecting the nodes. Example social graph 1500illustrated in FIG. 15 is shown, for didactic purposes, in atwo-dimensional visual map representation. In particular embodiments,the social networking system 1402, the client device 1406, or thethird-party system 1408 may access social graph 1500 and relatedsocial-graph information for suitable applications. The nodes and edgesof social graph 1500 may be stored as data objects, for example, in adata store (such as a social-graph database). Such a data store mayinclude one or more searchable or quarriable indexes of nodes or edgesof social graph 1500.

In particular embodiments, a user node 1502 may correspond to a user ofthe social networking system 1402. For example, a user may be anindividual (human user), an entity (e.g., an enterprise, business, orthird-party application), or a group (e.g., of individuals or entities)that interacts or communicates with or over social networking system1402. In particular embodiments, when a user registers for an accountwith the social networking system 1402, the social networking system1402 may create a user node 1502 corresponding to the user and store theuser node 1502 in one or more data stores. Users and user nodes 1502described herein may, where appropriate, refer to registered users anduser nodes 1502 associated with registered users.

In addition, or as an alternative, users and user nodes 1502 describedherein may, where appropriate, refer to users that have not registeredwith the social networking system 1402. In particular embodiments, auser node 1502 may be associated with information provided by a user orinformation gathered by various systems, including the social networkingsystem 1402. For example, a user may provide his or her name, profilepicture, contact information, birth date, sex, marital status, familystatus, employment, education background, preferences, interests, orother demographic information. Each user node of the social graph mayhave a corresponding web page (typically known as a profile page). Inresponse to a request including a user name, the social networkingsystem can access a user node corresponding to the user name, andconstruct a profile page including the name, a profile picture, andother information associated with the user. A profile page of a firstuser may display to a second user all or a portion of the first user'sinformation based on one or more privacy settings by the first user andthe relationship between the first user and the second user.

In particular embodiments, a concept node 1504 may correspond to aconcept. For example, a concept may correspond to a place (e.g., a movietheater, restaurant, landmark, or city); a website (e.g., a websiteassociated with social networking system 1402 or a third-party websiteassociated with a web-application server); an entity (e.g., a person,business, group, sports team, or celebrity); a resource (e.g., an audiofile, video file, digital photo, text file, structured document, orapplication) which may be located within the social networking system1402 or on an external server, such as a web-application server; real orintellectual property (e.g., a sculpture, painting, movie, game, song,idea, photograph, or written work); a game; an activity; an idea ortheory; another suitable concept; or two or more such concepts. Aconcept node 1504 may be associated with information of a conceptprovided by a user or information gathered by various systems, includingthe social networking system 1402. For example, information of a conceptmay include a name or a title; one or more images (e.g., an image of thecover page of a book); a location (e.g., an address or a geographicallocation); a website (which may be associated with a URL); contactinformation (e.g., a phone number or an email address); other suitableconcept information; or any suitable combination of such information. Inparticular embodiments, a concept node 1504 may be associated with oneor more data objects corresponding to information associated withconcept node 1504. In particular embodiments, a concept node 1504 maycorrespond to one or more webpages.

In particular embodiments, a node in the social graph 1500 may representor be represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible to the socialnetworking system 1402. Profile pages may also be hosted on third-partywebsites associated with a third-party system 1408. For example, aprofile page corresponding to a particular external webpage may be theparticular external webpage, and the profile page may correspond to aparticular concept node 1504. Profile pages may be viewable by all or aselected subset of other users. For example, a user node 1502 may have acorresponding user-profile page in which the corresponding user may addcontent, make declarations, or otherwise express himself or herself. Asanother example and not by way of limitation, a concept node 1504 mayhave a corresponding concept-profile page in which one or more users mayadd content, make declarations, or express themselves, particularly inrelation to the concept corresponding to concept node 1504.

In particular embodiments, a concept node 1504 may represent athird-party webpage or resource hosted by the third-party system 1408.The third-party webpage or resource may include, among other elements,content, a selectable or another icon, or another inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. For example, a third-partywebpage may include a selectable icon such as “like,” “check-in,” “eat,”“recommend,” or another suitable action or activity. A user viewing thethird-party webpage may perform an action by selecting one of the icons(e.g., “eat”), causing a client device 1406 to send to the socialnetworking system 1402 a message indicating the user's action. Inresponse to the message, the social networking system 1402 may create anedge (e.g., an “eat” edge) between a user node 1502 corresponding to theuser and a concept node 1504 corresponding to the third-party webpage orresource and store edge 1506 in one or more data stores.

In particular embodiments, a pair of nodes in the social graph 1500 maybe connected to each other by one or more edges 1506. An edge 1506connecting a pair of nodes may represent a relationship between the pairof nodes. In particular embodiments, an edge 1506 may include orrepresent one or more data objects or attributes corresponding to therelationship between a pair of nodes. For example, a first user mayindicate that a second user is a “friend” of the first user. In responseto this indication, the social networking system 1402 may send a “friendrequest” to the second user.

If the second user confirms the “friend request,” social networkingsystem 1402 may create an edge 1506 connecting the first user's usernode 1502 to the second user's user node 1502 in the social graph 1500and store edge 1506 as social-graph information in one or more of datastores. In the example of FIG. 15 , social graph 1500 includes an edge1506 indicating a friend relation between user nodes 1502 of user “A”and user “B” and an edge indicating a friend relation between user nodes1502 of user “C” and user “B.” Although this disclosure describes orillustrates particular edges 1506 with particular attributes connectingparticular user nodes 1502, this disclosure contemplates any suitableedges 1506 with any suitable attributes connecting user nodes 1502. Forexample, an edge 1506 may represent a friendship, family relationship,business or employment relationship, fan relationship, followerrelationship, visitor relationship, subscriber relationship,superior/subordinate relationship, reciprocal relationship,non-reciprocal relationship, another suitable type of relationship, ortwo or more such relationships. Moreover, although this disclosuregenerally describes nodes as being connected, this disclosure alsodescribes users or concepts as being connected. Herein, references tousers or concepts being connected may, where appropriate, refer to thenodes corresponding to those users or concepts being connected in thesocial graph 1500 by one or more edges 1506.

In particular embodiments, an edge 1506 between a user node 1502 and aconcept node 1504 may represent a particular action or activityperformed by a user associated with user node 1502 toward a conceptassociated with a concept node 1504. For example, as illustrated in FIG.15 , a user may “like,” “attended,” “played,” “listened,” “cooked,”“worked at,” or “watched” a concept, each of which may correspond to anedge type or subtype. A concept-profile page corresponding to a conceptnode 1504 may include, for example, a selectable “check-in” icon (e.g.,a clickable “check-in” icon) or a selectable “add to favorites” icon.Similarly, after a user clicks these icons, the social networking system1402 may create a “favorite” edge or a “check-in” edge in response to auser's action corresponding to a respective action.

As another example and not by way of limitation, a user (user “C”) maylisten to a particular song (“Ramble On”) using a particular application(SPOTIFY, which is an online music application). In this case, thesocial networking system 1402 may create a “listened” edge 1506 and a“used” edge (as illustrated in FIG. 15 ) between user nodes 1502corresponding to the user and concept nodes 1504 corresponding to thesong and application to indicate that the user listened to the song andused the application.

Moreover, the social networking system 1402 may create a “played” edge1506 (as illustrated in FIG. 15 ) between concept nodes 1504corresponding to the song and the application to indicate that theparticular song was played by the particular application. In this case,“played” edge 1506 corresponds to an action performed by an externalapplication (SPOTIFY) on an external audio file (the song “Imagine”).Although this disclosure describes particular edges 1506 with particularattributes connecting user nodes 1502 and concept nodes 1504, thisdisclosure contemplates any suitable edges 1506 with any suitableattributes connecting user nodes 1502 and concept nodes 1504.

Furthermore, although this disclosure describes edges between a usernode 1502 and a concept node 1504 representing a single relationship,this disclosure contemplates edges between a user node 1502 and aconcept node 1504 representing one or more relationships. For example,an edge 1506 may represent both that a user likes and has used at aparticular concept. Alternatively, another edge 1506 may represent eachtype of relationship (or multiples of a single relationship) between auser node 1502 and a concept node 1504 (as illustrated in FIG. 15between user node 1502 for user “E” and concept node 1504 for“SPOTIFY”).

In particular embodiments, the social networking system 1402 may createan edge 1506 between a user node 1502 and a concept node 1504 in thesocial graph 1500. For example, a user viewing a concept-profile page(e.g., by using a web browser or a special-purpose application hosted bythe user's client device 1406) may indicate that he or she likes theconcept represented by the concept node 1504 by clicking or selecting a“Like” icon, which may cause the user's client device 1406 to send tothe social networking system 1402 a message indicating the user's likingof the concept associated with the concept-profile page.

In response to the message, the social networking system 1402 may createan edge 1506 between user node 1502 associated with the user and conceptnode 1504, as illustrated by “like” edge 1506 between the user andconcept node 1504. In particular embodiments, the social networkingsystem 1402 may store an edge 1506 in one or more data stores. Inparticular embodiments, an edge 1506 may be automatically formed by thesocial networking system 1402 in response to a particular user action.For example, if a first user uploads a picture, watches a movie, orlistens to a song, an edge 1506 may be formed between user node 1502corresponding to the first user and concept nodes 1504 corresponding tothose concepts. Although this disclosure describes forming particularedges 1506 in particular manners, this disclosure contemplates formingany suitable edges 1506 in any suitable manner.

In particular embodiments, an advertisement may be text (which may beHTML-linked), one or more images (which may be HTML-linked), one or morevideos, audio, one or more ADOBE FLASH files, a suitable combination ofthese, or any other suitable advertisement in any suitable digitalformat presented on one or more webpages, in one or more e-mails, or inconnection with search results requested by a user. In addition, or asan alternative, an advertisement may be one or more sponsored stories(e.g., a news-feed or ticker item on the social networking system 1402)

A sponsored story may be a social action by a user (such as “liking” apage, “liking” or commenting on a post on a page, RSVPing to an eventassociated with a page, voting on a question posted on a page, checkingin to a place, using an application or playing a game, or “liking” orsharing a website) that an advertiser promotes, for example, by havingthe social action presented within a predetermined area of a profilepage of a user or other page, presented with additional informationassociated with the advertiser, bumped up or otherwise highlightedwithin news feeds or tickers of other users, or otherwise promoted. Theadvertiser may pay to have the social action promoted. For example,advertisements may be included among the search results of asearch-results page, where sponsored content is promoted overnon-sponsored content.

In particular embodiments, an advertisement may be requested for displaywithin social networking system webpages, third-party webpages, or otherpages. An advertisement may be displayed in a dedicated portion of apage, such as in a banner area at the top of the page, in a column atthe side of the page, in a GUI of the page, in a pop-up window, in adrop-down menu, in an input field of the page, over the top of contentof the page, or elsewhere with respect to the page. In addition, or asan alternative, an advertisement may be displayed within an application.An advertisement may be displayed within dedicated pages, requiring theuser to interact with or watch the advertisement before the user mayaccess a page or utilize an application. For example, the user may viewthe advertisement through a web browser.

A user may interact with an advertisement in any suitable manner. Theuser may click or otherwise select the advertisement. By selecting theadvertisement, the user may be directed to (or a browser or otherapplication being used by the user) a page associated with theadvertisement. At the page associated with the advertisement, the usermay take additional actions, such as purchasing a product or serviceassociated with the advertisement, receiving information associated withthe advertisement, or subscribing to a newsletter associated with theadvertisement. An advertisement with audio or video may be played byselecting a component of the advertisement (like a “play button”).Alternatively, by selecting the advertisement, the social networkingsystem 1402 may execute or modify a particular action of the user.

An advertisement may also include social networking-system functionalitythat a user may interact with. For example, an advertisement may enablea user to “like” or otherwise endorse the advertisement by selecting anicon or link associated with the endorsement. As another example and notby way of limitation, an advertisement may enable a user to search(e.g., by executing a query) for content related to the advertiser.Similarly, a user may share the advertisement with another user (e.g.,through the social networking system 1402) or RSVP (e.g., through thesocial networking system 1402) to an event associated with theadvertisement. In addition, or as an alternative, an advertisement mayinclude a social networking system context directed to the user. Forexample, an advertisement may display information about a friend of theuser within the social networking system 1402 who has taken an actionassociated with the subject matter of the advertisement.

In particular embodiments, the social networking system 1402 maydetermine the social-graph affinity (which may be referred to herein as“affinity”) of various social-graph entities for each other. Affinitymay represent the strength of a relationship or level of interestbetween particular objects associated with the online network of users,such as users, concepts, content, actions, advertisements, other objectsassociated with the online network of users, or any suitable combinationthereof. Affinity may also be determined with respect to objectsassociated with the third-party systems 1408 or other suitable systems.An overall affinity for a social-graph entity for each user, subjectmatter, or type of content may be established. The overall affinity maychange based on continued monitoring of the actions or relationshipsassociated with the social-graph entity. Although this disclosuredescribes determining particular affinities in a particular manner, thisdisclosure contemplates determining any suitable affinities in anysuitable manner.

In particular embodiments, the social networking system 1402 may measureor quantify social-graph affinity using an affinity coefficient (whichmay be referred to herein as “coefficient”). The coefficient mayrepresent or quantify the strength of a relationship between particularobjects associated with the online network of users. The coefficient mayalso represent a probability or function that measures a predictedprobability that a user will perform a particular action based on theuser's interest in the action. In this way, a user's future actions maybe predicted based on the user's prior actions, where the coefficientmay be calculated at least in part based on the history of the user'sactions. Coefficients may be used to predict any number of actions,which may be within or outside of the online network of users. Forexample, these actions may include various types of communications, suchas sending messages, posting content, or commenting on content; varioustypes of an observation actions, such as accessing or viewing profilepages, media, or other suitable content; various types of coincidenceinformation about two or more social-graph entities, such as being inthe same group, tagged in the same photograph, checked-in at the samelocation, or attending the same event; or other suitable actions.Although this disclosure describes measuring affinity in a particularmanner, this disclosure contemplates measuring affinity in any suitablemanner.

In particular embodiments, the social networking system 1402 may use avariety of factors to calculate a coefficient. These factors mayinclude, for example, user actions, types of relationships betweenobjects, location information, other suitable factors, or anycombination thereof. In particular embodiments, different factors may beweighted differently when calculating the coefficient. The weights foreach factor may be static, or the weights may change according to, forexample, the user, the type of relationship, the type of action, theuser's location, and so forth. Ratings for the factors may be combinedaccording to their weights to determine an overall coefficient for theuser. For example, particular user actions may be assigned both a ratingand a weight while a relationship associated with the particular useraction is assigned a rating and a correlating weight (e.g., so theweights total 100%). To calculate the coefficient of a user towards aparticular object, the rating assigned to the user's actions maycomprise, for example, 60% of the overall coefficient, while therelationship between the user and the object may comprise 40% of theoverall coefficient. In particular embodiments, the social networkingsystem 1402 may consider a variety of variables when determining weightsfor various factors used to calculate a coefficient, such as, forexample, the time since information was accessed, decay factors,frequency of access, relationship to information or relationship to theobject about which information was accessed, relationship tosocial-graph entities connected to the object, short- or long-termaverages of user actions, user feedback, other suitable variables, orany combination thereof. For example, a coefficient may include a decayfactor that causes the strength of the signal provided by particularactions to decay with time, such that more recent actions are morerelevant when calculating the coefficient. The ratings and weights maybe continuously updated based on continued tracking of the actions uponwhich the coefficient is based. Any type of process or algorithm may beemployed for assigning, combining, averaging, and so forth the ratingsfor each factor and the weights assigned to the factors. In particularembodiments, the social networking system 1402 may determinecoefficients using machine-learning algorithms trained on historicalactions and past user responses, or data farmed from users by exposingthem to various options and measuring responses. Although thisdisclosure describes calculating coefficients in a particular manner,this disclosure contemplates calculating coefficients in any suitablemanner.

In particular embodiments, the social networking system 1402 maycalculate a coefficient based on a user's actions. The social networkingsystem 1402 may monitor such actions on the online network of users, onthe third-party system 1408, on other suitable systems, or anycombination thereof. Any suitable type of user actions may be tracked ormonitored. Typical user actions include viewing profile pages, creatingor posting content, interacting with content, joining groups, listingand confirming attendance at events, checking-in at locations, likingparticular pages, creating pages, and performing other tasks thatfacilitate social action. In particular embodiments, the socialnetworking system 1402 may calculate a coefficient based on the user'sactions with particular types of content. The content may be associatedwith the online network of users, the third-party system 1408, oranother suitable system. The content may include users, profile pages,posts, news stories, headlines, instant messages, chat roomconversations, emails, advertisements, pictures, video, music, othersuitable objects, or any combination thereof. The social networkingsystem 1402 may analyze a user's actions to determine whether one ormore of the actions indicate an affinity for the subject matter,content, other users, and so forth. For example, if a user may makefrequently posts content related to “coffee” or variants thereof, thesocial networking system 1402 may determine the user has a highcoefficient with respect to the concept “coffee.” Particular actions ortypes of actions may be assigned a higher weight and/or rating thanother actions, which may affect the overall calculated coefficient. Forexample, if a first user emails a second user, the weight or the ratingfor the action may be higher than if the first user views theuser-profile page for the second user.

In particular embodiments, the social networking system 1402 maycalculate a coefficient based on the type of relationship betweenparticular objects. Referencing the social graph 1500, the socialnetworking system 1402 may analyze the number and/or type of edges 1506connecting particular user nodes 1502 and concept nodes 1504 whencalculating a coefficient. For example, user nodes 1502 that areconnected by a spouse-type edge (representing that the two users aremarried) may be assigned a higher coefficient than a user nodes 1502that are connected by a friend-type edge. In other words, depending uponthe weights assigned to the actions and relationships for the particularuser, the overall affinity may be determined to be higher for contentabout the user's spouse than for content about the user's friend.

In particular embodiments, the relationships a user has with anotherobject may affect the weights and/or the ratings of the user's actionswith respect to calculating the coefficient for that object. Forexample, if a user is tagged in a first photo, but merely likes a secondphoto, the social networking system 1402 may determine that the user hasa higher coefficient with respect to the first photo than the secondphoto because having a tagged-in-type relationship with content may beassigned a higher weight and/or rating than having a like-typerelationship with content.

In some embodiments, the social networking system 1402 may calculate acoefficient for a first user based on the relationship one or moresecond users have with a particular object. In other words, theconnections and coefficients other users have with an object may affectthe first user's coefficient for the object. For example, if a firstuser is connected to or has a high coefficient for one or more secondusers, and those second users are connected to or have a highcoefficient for a particular object, the social networking system 1402may determine that the first user should also have a relatively highcoefficient for the particular object.

In one or more embodiments, the coefficient may be based on the degreeof separation between particular objects. The degree of separationbetween any two nodes is defined as the minimum number of hops requiredto traverse the social graph from one node to the other. A degree ofseparation between two nodes can be considered a measure of relatednessbetween the users or the concepts represented by the two nodes in thesocial graph. For example, two users having user nodes that are directlyconnected by an edge (i.e., are first-degree nodes) may be described as“connected users” or “friends.”

Similarly, two users having user nodes that are connected only throughanother user node (i.e., are second-degree nodes) may be described as“friends of friends.” The lower coefficient may represent the decreasinglikelihood that the first user will share an interest in content objectsof the user that is indirectly connected to the first user in the socialgraph 1500. For example, social-graph entities that are closer in thesocial graph 1500 (i.e., fewer degrees of separation) may have a highercoefficient than entities that are further apart in the social graph1500.

In particular embodiments, the social networking system 1402 maycalculate a coefficient based on location information. Objects that aregeographically closer to each other may be considered to be morerelated, or of more interest, to each other than more distant objects.In some embodiments, the coefficient of a user towards a particularobject may be based on the proximity of the object's location to acurrent location associated with the user (or the location of a clientdevice 1406 of the user). A first user may be more interested in otherusers or concepts that are closer to the first user. For example, if auser is one mile from an airport and two miles from a gas station, thesocial networking system 1402 may determine that the user has a highercoefficient for the airport than the gas station based on the proximityof the airport to the user.

In particular embodiments, the social networking system 1402 may performparticular actions with respect to a user based on coefficientinformation. Coefficients may be used to predict whether a user willperform a particular action based on the user's interest in the action.A coefficient may be used when generating or presenting any type ofobjects to a user, such as advertisements, search results, news stories,media, messages, notifications, or other suitable objects. Thecoefficient may also be utilized to rank and order such objects, asappropriate. In this way, the social networking system 1402 may provideinformation that is relevant to a user's interests and currentcircumstances, increasing the likelihood that they will find suchinformation of interest.

In some embodiments, the social networking system 1402 may generatecontent based on coefficient information. Content objects may beprovided or selected based on coefficients specific to a user. Forexample, the coefficient may be used to generate media for the user,where the user may be presented with media for which the user has a highoverall coefficient with respect to the media object. As another exampleand not by way of limitation, the coefficient may be used to generateadvertisements for the user, where the user may be presented withadvertisements for which the user has a high overall coefficient withrespect to the advertised object.

In one or more embodiments, the social networking system 1402 maygenerate search results based on coefficient information. The searchresults for a particular user may be scored or ranked based on thecoefficient associated with the search results with respect to thequerying user. For example, search results corresponding to objects withhigher coefficients may be ranked higher on a search-results page thanresults corresponding to objects having lower coefficients.

In particular embodiments, the social networking system 1402 maycalculate a coefficient in response to a request for a coefficient froma particular system or process. To predict the likely actions a user maytake (or may be the subject of) in a given situation, any process mayrequest a calculated coefficient for a user. The request may alsoinclude a set of weights to use for various factors used to calculatethe coefficient. This request may come from a process running on theonline network of users, from the third-party system 1408 (e.g., via anAPI or another communication channel), or from another suitable system.In response to the request, the social networking system 1402 maycalculate the coefficient (or access the coefficient information if ithas previously been calculated and stored).

In various embodiments, the social networking system 1402 may measure anaffinity with respect to a particular process. Different processes (bothinternal and external to the online network of users) may request acoefficient for a particular object or set of objects. The socialnetworking system 1402 may provide a measure of affinity that isrelevant to the particular process that requested the measure ofaffinity. In this way, each process receives a measure of affinity thatis tailored for the different context in which the process will use themeasure of affinity.

In connection with social-graph affinity and affinity coefficients,particular embodiments may utilize one or more systems, components,elements, functions, methods, operations, or steps disclosed in U.S.patent application Ser. No. 11/503093, filed Aug. 11, 2006, U.S. patentapplication Ser. No. 12/977027, filed Dec. 22, 2010, U.S. PatentApplication No. 12/978265, filed Dec. 23, 2010, and U.S. patentapplication Ser. No. 13/632869, filed Oct. 1, 2012, each of which isincorporated by reference in their entirety.

In particular embodiments, one or more of the content objects of theonline network of users may be associated with a privacy setting. Theprivacy settings (or “access settings”) for an object may be stored inany suitable manner, such as, for example, in association with theobject, in an index on an authorization server, in another suitablemanner, or any combination thereof. A privacy setting of an object mayspecify how the object (or particular information associated with anobject) can be accessed (e.g., viewed or shared) using the onlinenetwork of users. Where the privacy settings for an object allow aparticular user to access that object, the object may be described asbeing “visible” with respect to that user. For example, a user of theonline network of users may specify privacy settings for a user-profilepage identify a set of users that may access the work experienceinformation on the user-profile page, thus excluding other users fromaccessing the information.

In particular embodiments, the privacy settings may specify a “blockedlist” of users that should not be allowed to access certain informationassociated with the object. In other words, the blocked list may specifyone or more users or entities for which an object is not visible. Forexample, a user may specify a set of users that may not access photosalbums associated with the user, thus excluding those users fromaccessing the photo albums (while also possibly allowing certain usersnot within the set of users to access the photo albums). In particularembodiments, privacy settings may be associated with particularsocial-graph elements. Privacy settings of a social-graph element, suchas a node or an edge, may specify how the social-graph element,information associated with the social-graph element, or content objectsassociated with the social-graph element can be accessed using theonline network of users. For example, a particular concept node 1504corresponding to a particular photo may have a privacy settingspecifying that the photo may only be accessed by users tagged in thephoto and their friends.

In particular embodiments, privacy settings may allow users to opt in oropt out of having their actions logged by the social networking system1402 or shared with other systems (e.g., the third-party system 1408).In particular embodiments, the privacy settings associated with anobject may specify any suitable granularity of permitted access ordenial of access. For example, access or denial of access may bespecified for particular users (e.g., only me, my roommates, and myboss), users within a particular degrees-of-separation (e.g., friends,or friends-of-friends), user groups (e.g., the gaming club, my family),user networks (e.g., employees of particular employers, students oralumni of particular university), all users (“public”), no users(“private”), users of the third-party systems 1408, particularapplications (e.g., third-party applications, external websites), othersuitable users or entities, or any combination thereof. Although thisdisclosure describes using particular privacy settings in a particularmanner, this disclosure contemplates using any suitable privacy settingsin any suitable manner.

In particular embodiments, one or more servers may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store, the social networking system 1402 maysend a request to the data store for the object. The request mayidentify the user associated with the request and may only be sent tothe user (or a client device 1406 of the user) if the authorizationserver determines that the user is authorized to access the object basedon the privacy settings associated with the object. If the requestinguser is not authorized to access the object, the authorization servermay prevent the requested object from being retrieved from the datastore or may prevent the requested object from being sent to the user.

In the search query context, an object may only be generated as a searchresult if the querying user is authorized to access the object. In otherwords, the object must have a visibility that is visible to the queryinguser. If the object has a visibility that is not visible to the user,the object may be excluded from the search results. Although thisdisclosure describes enforcing privacy settings in a particular manner,this disclosure contemplates enforcing privacy settings in any suitablemanner.

The foregoing specification is described with reference to specificexample embodiments thereof. Various embodiments and aspects of thedisclosure are described with reference to details discussed herein, andthe accompanying drawings illustrate the various embodiments. Thedescription above and drawings are illustrative and are not to beconstrued as limiting. Numerous specific details are described toprovide a thorough understanding of various embodiments.

The additional or alternative embodiments may be embodied in otherspecific forms without departing from its spirit or essentialcharacteristics. The described embodiments are to be considered in allrespects only as illustrative and not restrictive. The scope of theinvention is, therefore, indicated by the appended claims rather than bythe foregoing description. All changes that come within the meaning andrange of equivalency of the claims are to be embraced within theirscope.

What is claimed is:
 1. A method comprising: conducting a video callbetween a first participant device and a second participant device;receiving a selection to initiate a video co-watching session inconnection with the video call; receiving, from the first participantdevice, a selection of a digital video for the video co-watchingsession; and based on the selection, synchronizing playback of thedigital video at the first participant device and at the secondparticipant device as part of the video.
 2. The method of claim 1,wherein: the digital video comprises a third-party digital video; andsynchronizing playback of the third-party digital video is performedwithout identifying the third-party digital video.
 3. The method ofclaim 2, wherein synchronizing playback of the third-party digital videowithout identifying the third-party digital video comprises preventingtransfer of information regarding the third-party digital video by:receiving, from a third-party database, an encrypted identifierindicating, and encrypting an identity of, the third-party digitalvideo; and distributing the encrypted identifier to the firstparticipant device and the second participant device.
 4. The method ofclaim 1, wherein conducting the video call between the first participantdevice and the second participant device comprises providing, at thefirst participant device, a video chat interface comprising a firstdigital video stream from the first participant device and a seconddigital video stream from the second participant device.
 5. The methodof claim 4, further comprising transitioning from the video chatinterface into a synchronized digital content video chat interface by:reducing a size of a display the first digital video stream; reducing asize of a display the second digital video stream; and providing adisplay of the synchronized digital video.
 6. The method of claim 4,further comprising presenting a co-watching digital video contentselection menu within the video chat interface in response to theselection to initiate the video co-watching session, the co-watchingdigital video content selection menu comprising a plurality of digitalvideos available for playback during the video co-watching session. 7.The method of claim 6, further comprising: generating recommendations ofone or more suggested videos for the video co-watching session based onsocial graph information; and providing the recommendations of the oneor more suggested videos in the co-watching digital video contentselection menu.
 8. A non-transitory computer readable medium comprisinginstructions that, when executed by at least one processor, cause the atleast one processor to perform operations comprising: conducting a videocall between a first participant device and a second participant device;receiving a selection to initiate a video co-watching session inconnection with the video call; receiving, from the first participantdevice, a selection of a digital video for the video co-watchingsession; and based on the selection, synchronizing playback of thedigital video at the first participant device and at the secondparticipant device as part of the video.
 9. The non-transitory computerreadable medium of claim 8, wherein: the digital video comprises athird-party digital video; and synchronizing playback of the third-partydigital video is performed without identifying the third-party digitalvideo.
 10. The non-transitory computer readable medium of claim 9,wherein synchronizing playback of the third-party digital video withoutidentifying the third-party digital video comprises preventing transferof information regarding the third-party digital video by: receiving,from a third-party database, an encrypted identifier indicating, andencrypting an identity of, the third-party digital video; anddistributing the encrypted identifier to the first participant deviceand the second participant device.
 11. The non-transitory computerreadable medium of claim 8, wherein conducting the video call betweenthe first participant device and the second participant device comprisesproviding, at the first participant device, a video chat interfacecomprising a first digital video stream from the first participantdevice and a second digital video stream from the second participantdevice.
 12. The non-transitory computer readable medium of claim 11,further comprising transitioning from the video chat interface into asynchronized digital content video chat interface by: reducing a size ofa display the first digital video stream; reducing a size of a displaythe second digital video stream; and providing a display of thesynchronized digital video.
 13. The non-transitory computer readablemedium of claim 11, wherein the operations further comprise presenting aco-watching digital video content selection menu within the video chatinterface in response to the selection to initiate the video co-watchingsession, the co-watching digital video content selection menu comprisinga plurality of digital videos available for playback during the videoco-watching session.
 14. The non-transitory computer readable medium ofclaim 8, wherein the operations further comprise: generatingrecommendations of one or more suggested videos for the videoco-watching session based on social graph information; and providing therecommendations of the one or more suggested videos in the co-watchingdigital video content selection menu.
 15. A system comprising: at leastone memory device comprising a segmentation neural network and a holefilling model; and at least one processor configured to cause the systemto: conduct a video call between a first participant device and a secondparticipant device; receive a selection to initiate a video co-watchingsession in connection with the video call; receive, from the firstparticipant device, a selection of a digital video for the videoco-watching session; and based on the selection, synchronize playback ofthe digital video at the first participant device and at the secondparticipant device as part of the video.
 16. The system of claim 15,wherein: the digital video comprises a third-party digital video; andsynchronizing playback of the third-party digital video is performedwithout identifying the third-party digital video.
 17. The system ofclaim 16, wherein the at least one processor is further configured tocause the system to synchronize playback of the third-party digitalvideo without identifying the third-party digital video comprisespreventing transfer of information regarding the third-party digitalvideo by: receiving, from a third-party database, an encryptedidentifier indicating, and encrypting an identity of, the third-partydigital video; and distributing the encrypted identifier to the firstparticipant device and the second participant device.
 18. The system ofclaim 15, wherein the at least one processor is further configured tocause the system to conduct the video call between the first participantdevice and the second participant device by providing, at the firstparticipant device, a video chat interface comprising a first digitalvideo stream from the first participant device and a second digitalvideo stream from the second participant device.
 19. The system of claim18, wherein the at least one processor is further configured to causethe system to transition from the video chat interface into asynchronized digital content video chat interface by: reducing a size ofa display the first digital video stream; reducing a size of a displaythe second digital video stream; and providing a display of thesynchronized digital video.
 20. The system of claim 18, wherein the atleast one processor is further configured to cause the system to presenta co-watching digital video content selection menu within the video chatinterface in response to the selection to initiate the video co-watchingsession, the co-watching digital video content selection menu comprisinga plurality of digital videos available for playback during the videoco-watching session.